准备
1 | sudo yum -y install curl |
测试方法
1 | curl https://www.baidu.com |
代理测试
HTTP代理测试
1 | curl --proxy http://127.0.0.1:10808 www.google.com |
如果是Socks5代理,可以参考下面的代码
1 | curl --socks5 127.0.0.1:10808 www.google.com |
系统全局HTTP代理
注意
这种方式只适合http代理
设置全局代理,需要编辑profile文件
1 | vi /etc/profile |
末尾添加以下代理配置,参考代理是否需要用户名密码
1 | #无用户名密码 |
如
1 | export http_proxy=http://127.0.0.1:10808 |
或者建议这样配置
1 | http_proxy=proxy.abc.com:8080 |
其中:
http_proxy:http协议使用代理服务器地址;
https_proxy:https协议使用安全代理地址;
ftp_proxy:ftp协议使用代理服务器地址;
user:代理使用的用户名;
password:代理使用用户名的密码;
proxy.abc.com:代理地址,可以是IP,也可以是域名;
8080:使用的端口;
no_proxy:不使用代理的主机或IP。
生效配置文件
1 | source /etc/profile |
查看当前已设置代理
1 | echo $http_proxy |
测试
1 | wget www.google.com |
转换Socks代理
系统代理只能设置HTTP代理,但是使用privoxy
将socks5转换为http代理
安装privoxy
1 | yum install -y privoxy |
配置privoxy
1 | vim /etc/privoxy/config |
末尾增加下面内容,/
后面是代理服务器的地址:端口
,注意最后还有个.
1 | forward-socks5t / 127.0.0.1:10808 . |
启动服务
1 | systemctl start privoxy |
设置一下系统代理变量
1 | export all_proxy=http://127.0.0.1:8118 |
注:8118
是privoxy默认使用的端口
配置Socks5代理软件
Linux 有一个能够强迫任何软件通过 SOCKS 代理上网的工具,其名就是 tsocks。Tsocks 是一个透明 SOCKS 代理软件。
1 安装
1 | sudo apt-get install tsocks |
2 配置
修改配置文件:
1 | sudo vim /etc/tsocks.conf |
将其内容改成以下几行并保存退出:
1 | local = 192.168.1.0/255.255.255.0 #local表示本地的网络,也就是不使用socks代理的网络 |
3 使用
1 | tsocks 你的软件 & |
全局Socks5配置
1 | sudo iptables -t nat -F # 清空nat表规则 |
我们要做的就是放行局域网和socks5代理服务器IP,此处我们往OUTPUT链里设置,设置到SSR链也可以,不过最好用SSR链专门来设置白名单
1 | sudo iptables -t nat -I OUTPUT -j RETURN -m comment --comment '局域网放行' -d 0.0.0.0/8 |
设置白名单
1 | release_domain="cip.cc" |
由于这个操作很频繁,所以我写了一行交互式的脚本
1 | read -p 请输入要设置白名单的域名: release_domain && sudo iptables -t nat -I SSR -j RETURN -m comment --comment '白名单域名:'"$release_domain" -d $release_domain && sudo iptables -t nat -nvL --line-number |
查看SSR链规则
1 | sudo iptables -t nat -nvL SSR --line-number |
添加自定义命令在.bashrc
中添加alias
别名,从而提供一键启用/关闭代理的命令
1 | alias ssrclose="sudo iptables -t nat -j RETURN -m comment --comment 临时关闭代理 -I SSR" |
DNS污染的解决办法
什么是pdnsd
p dns d -> Proxy DNS Daemon
安装pdnsd执行tcp查询,主要配置如下
官方文档
1 | server { |
启动本地DNS服务:
1 | sudo pdnsd --tcp -mto -d |
为了开机启动pdnsd,编辑 /etc/default/pdnsd
文件,修改下列行:
1 | START_DAEMON=yes |
接下来修改/etc/resolv.conf
,将DNS改为127.0.0.1
即可