上面左边是我的个人微信,如需进一步沟通,请加微信。 右边是我的公众号“Openstack私有云”,如有兴趣,请关注。
在很多情况下访问国外软件源的时候网络速度非常慢,为了加速国外资源网络的访问,专门租用了境外的vps服务器,在vps上搭建shadowsocks程序做代理,国内服务器通过shadowsocks代理上网,可以大大提高国外站点的资源访问速率。下面介绍配置方法。
VPS推荐使用vultr的VPS,性价比最好,只要使用下面的链接注册vultr账号并订购虚拟机使用30天以上,我能获得一点推荐奖励金,谢谢支持,我的奖励注册链接如下:
https://www.vultr.com/?ref=7115815
1. 安装shadowsocks,(安装完成后就可以用客户端程序sslocal) :
Centos7安装方法:
yum install -y python-pip
pip install shadowsocks
unbuntu16安装方法:
apt-get install shadowsocks
unbuntu14 需要使用pip安装:
apt-get install python-gevent python-pip
pip install shadowsocks
修改shadowsocks客户端配置文件 :
# vi /etc/shadowsocks/config.json
{
"server":"45.77.13.39", #vps服务器IP地址
"server_port":443,
"local_address":"127.0.0.1",
"local_port":1080,
"password":"******", #vps上设置的密码,使用你自己设置的密码
"timeout":300,
"method":"aes-256-cfb",
"fast_open":false,
"workers":1
}
2. 安装redsocks:
Centos7安装方法:
yum install libevent-devel git gcc
mkdir ~/shadowsocks
cd ~/shadowsocks
git clone https://github.com/darkk/redsocks
cd ~/shadowsocks/redsocks
make
cp ~/shadowsocks/redsocks/redsocks /usr/local/bin/
新建配置文件:
vi /etc/redsocks.conf
base {
log_debug = off;
log_info = on;
log = stderr;
daemon = off;
redirector = iptables;
}
redsocks {
local_ip = 0.0.0.0; #本地转发地址
local_port = 12345; #本地转发端口
ip = 127.0.0.1;
port = 1080; #shadowsocks端口
type = socks5;
}
unbuntu16安装方法:
apt-get install redsocks
3. 新建shadowsocks和redsocks启动脚本文件
新建启动脚本文件/etc/systemd/system/shadowsocks.service,内容如下:
[Unit]
Description=Shadowsocks
[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/sslocal -c /etc/shadowsocks/config.json
[Install]
WantedBy=multi-user.target
新建启动脚本文件/etc/systemd/system/redsocks.service,内容如下:
[Unit]
Description=Redsocks
[Service]
TimeoutStartSec=0
ExecStart=/usr/local/bin/redsocks -c /etc/redsocks.conf
[Install]
WantedBy=multi-user.target
执行以下命令启动 shadowsocks 服务:
systemctl enable shadowsocks
systemctl start shadowsocks
systemctl enable redsocks
systemctl start redsocks
检查服务状态,确保服务启动正常:
systemctl status shadowsocks
systemctl status redsocks
检查端口,shadowsocks使用1080端口,redsocks使用12345端口:
ss -anp|grep 1080
ss -anp|grep 12345
4. 设置iptables消息转发,将除本地消息和局域网内部消息,其他消息全部转发到12345端口:
#!/bin/bash
export SERVER_IP="45.77.13.39"
sudo iptables -t nat -A OUTPUT -d $SERVER_IP -j RETURN
sudo iptables -t nat -A OUTPUT -d 10.0.0.0/8 -j RETURN
sudo iptables -t nat -A OUTPUT -d 172.0.0.0/8 -j RETURN
sudo iptables -t nat -A OUTPUT -d 192.168.0.0/16 -j RETURN
sudo iptables -t nat -A OUTPUT -d 127.0.0.0/8 -j RETURN
sudo iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-ports 12345
以上命令的作用是,内网10.0.0.0/8,172.0.0.0/8 ,192.168.0.0/16, 127.0.0.0/8 网段的消息不做处理,除此之外,所有的网络包都转发到本地端口12345 。
测试是否能够访问
curl www.google.com.hk
当需要取消消息转发的时候运行如下命令:
sudo iptables -t nat -D OUTPUT 6
sudo iptables -t nat -D OUTPUT 5
sudo iptables -t nat -D OUTPUT 4
sudo iptables -t nat -D OUTPUT 3
sudo iptables -t nat -D OUTPUT 2
sudo iptables -t nat -D OUTPUT 1
注意,如果主机重启,shadowsocks和redsocks服务会自动启动,但是需要手工运行上面的第4步,设置iptables消息转发。
如果不需要使用了,将iptables消息转发关闭,shadowsocks和redsocks服务关闭和禁用即可。