虽然使用Shadowsocks可以很方便的进行穿越,不过由于iOS系统后台任务管理机制的特殊性,Shadowsocks没有完美的体验(当Shadowsocks应用退至后台时,一般5分钟后就会被系统暂停退出,其它应用就无法持续穿越网络;即使使用后台播放无声文件的方式,当使用youtube等影音应用时依然悲剧;笔者后来又发现可以通过后台定位的方式常开后台,可是耗电量依然感人),因此使用标准通用的VPN网络可以完美解决iOS系统的穿越需求(当然你可以选择传说中的Surge客户端)。
本文全程参考“Install SoftEther VPN Server on CentOS”,感谢原作者。
XQS根据这篇文章搭建时遇到一些奇怪的问题也会在后面记录。
本文中的搭建环境依然适用VULTR提供的最低配日本节点VPS,配置如下:1CPU,768MB内存,1000GB的流量。VULTR日本节点的速度非常好,可以完美支持1080P的油管(youtube),可以点击这里去购买(我的推广链接Y(^_^)Y)
配置系统环境
首先我们还是SSH连接至VPS,然后使用如下命令更新系统软件环境:
yum update -y
然后安装开发工具包:
yum groupinstall "Development Tools" -y
安装DNS服务(dnsmasq):
yum install dhcp dnsmasq -y
修改系统设置开启路由(ip转发)功能,首先编辑文件/etc/sysctl.conf:
vi /etc/sysctl.conf
在文件中找到“net.ipv4.ip_forward”字段,修改值为“1”:
net.ipv4.ip_forward = 1
然后编辑文件/etc/sysconfig/dhcpd,打开仅对VPN客户端开启DHCP服务:
vi /etc/sysconfig/dhcpd
设置DHCPDARGS字段为tap_vpn:
DHCPDARGS=tap_vpn
修改DHCP的配置文件,设置分配给VPN客户端的ip、网关或DNS等信息:
vi /etc/dhcp/dhcpd.conf
粘入以下内容:
option domain-name "机器的域名";
option domain-name-servers 192.168.250.1, 8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.250.0 netmask 255.255.255.0 {
range 192.168.250.10 192.168.250.100;
option routers 192.168.250.1;
option router-solicitation-address 192.168.250.1;
}
在这里可以修改DNS:
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
#
option domain-name "机器的域名";
option domain-name-servers 208.67.222.222 ,208.67.220.220;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.250.0 netmask 255.255.255.0 {
range 192.168.250.10 192.168.250.100;
option routers 192.168.250.1;
option router-solicitation-address 192.168.250.1;
}
注:
1、这里的域名如果没有可以填写主机的反向DNS名称
2、相比引用教程,增加了“router-solicitation-address”配置,不配置此项VPN客户端可能无法获得网关(至于为什么还求高人解答)
然后我们来配置系统的防火墙,输入以下编辑防火墙配置:
vi /etc/sysconfig/iptables
在防火墙配置文件中添加以下条目,其中53为DNS端口,443是VPN的管理端口,500、4500和1701是VPN端口:
# Generated by iptables-save v1.4.7 on Sun Jul 31 10:38:07 2016
*nat
:PREROUTING ACCEPT [242:20052]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [21:1490]
-A POSTROUTING -s 192.168.250.0/24 -o eth0 -j MASQUERADE
-A POSTROUTING -j MASQUERADE
COMMIT
# Completed on Sun Jul 31 10:38:07 2016
# Generated by iptables-save v1.4.7 on Sun Jul 31 10:38:07 2016
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [274:29195]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1194 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 1701 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 500 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 4500 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8388 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -d 192.168.250.0/24 -j ACCEPT
-A FORWARD -s 192.168.250.0/24 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Sun Jul 31 10:38:07 2016
以上Softether VPN的初始运行环境配置完毕
安装Softether VPN
点击这里打开SoftetherVPN的下载中心,按配置选择安装的服务端版本,如下图:

在下方的版本列表中复制最新的rtm(正式版)安装包链接即可,然后回到SSH中,输入以下命令:
wget http://www.softether-download.com/files/softether/v4.20-9608-rtm-2016.04.17-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-x64-64bit.tar.gz
解压安装包:
tar zxvf softether-vpnserver-v4.20-9608-rtm-2016.04.17-linux-x64-64bit.tar.gz
进入解压后的vpnserver目录:
cd vpnserver/
运行编译:
make
返回vpnserver的上级目录:
cd ..
移动vpnserver目录到程序运行目录:
mv vpnserver /usr/local
切换到运行目录:
cd /usr/local/vpnserver/
运行语句修改运行权限:
chmod 600 *
chmod 700 vpnserver
chmod 700 vpncmd
接下来检查VPS服务器网卡的名称,在SSH中输入以下命令:
ifconfig
一般在VPS中名称为“eth0”;如果没有,一般服务器上带有供VPN访问ip地址的设备名称即是网卡名称
配置Linux VPN本地服务脚本,首先新建脚本文件:
vi /etc/init.d/vpnserver
根据上面获得的网卡名称,和配置的DHCP参数,修改下面的脚本文件后粘入:
#!/bin/sh
# chkconfig: 2345 99 01
# description: SoftEther VPN Server
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
sleep 3
ifconfig tap_vpn 192.168.250.1
iptables -t nat -A POSTROUTING -s 192.168.250.0/24 -o eth0 -j MASQUERADE
service dhcpd restart
service dnsmasq restart
;;
stop)
iptables -t nat -D POSTROUTING -s 192.168.250.0/24 -o eth0 -j MASQUERADE
$DAEMON stop
rm $LOCK
;;
restart)
iptables -t nat -D POSTROUTING -s 192.168.250.0/24 -o eth0 -j MASQUERADE
$DAEMON stop
sleep 3
$DAEMON start
sleep 3
ifconfig tap_vpn 192.168.250.1
iptables -t nat -A POSTROUTING -s 192.168.250.0/24 -o eth0 -j MASQUERADE
service dhcpd restart
service dnsmasq restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
退出后,运行下面命令确定文件夹锁被创建:
mkdir /var/lock/subsys
对VPN服务脚本文件授权:
chmod 755 /etc/init.d/vpnserver
设置开机自动启动VPN服务:
chkconfig --add vpnserver
然后启动VPN服务:
service vpnserver start
启动时,启动日志会显示如图错误,这里不必担心,稍后会对其进行配置:
配置SoftehterVPN
首先进入SoftetherVPN的安装目录:
cd /usr/local/vpnserver
运行vpn命令工具:
./vpncmd
在功能列表中选择“1”,“1. Management of VPN Server or VPN Bridge ”,这时会让输入vpn服务器ip和默认hub名称,这里无需输入,直接按两次“enter”键进入(默认本机)
输入以下命令,设置管理员密码,此密码将用于管理员登陆,牢记此密码:
ServerPasswordSet
然后运行exit退出vpn命令工具:
exit
目前基本的配置工作进行完毕,将到windows系统上使用远程管理工具继续配置vpnserver
去SoftetherVPN下载中心获得windows管理软件,选项如下:

下载安装后,双击“vpnsmgr.exe”启动管理程序,点击“新设置”按钮添加新建的VPN服务器,输入服务器的地址和上文设置的密码,点击确定:
由于是第一次进入管理软件,会弹出安装向导,不用理会,关闭即可。如果在HUB列表中有“Default”默认的HUB也删除即可。
点击“创建虚拟HUB”按钮继续:

在“虚拟HUB名”中输入“vpn”,点击“确定”按钮继续:
在HUB列表中,双击新建的“vpn”行项,点击“管理用户”后继续:

点击“新建”按钮继续:

在“验证类型”中选择“密码验证”,输入“用户名”、“密码”后,点击确定后,新用户建立。

关闭所有上层界面后回到管理器的主界面,开始进行本地网桥的设置,点击“本地网桥设置”按钮:

进入界面后,在“虚拟HUB”中选择“vpn”,“创建类型”选择“新tap设备的桥接”,“新tap设备名称”输入“vpn”,如图配置,然后点击“创建本地桥”按钮:

创建后如下图显示,状态为“运行中”,点击“关闭”后继续:

至此,SoftetherVPN的网络配置已经完成,不过目前还无法使用VPN服务,接下来将配置L2TP VPN服务,回到管理器的主界面,点击“IPsec/L2TP 设置”按钮继续。选择“启用L2TP服务器功能”,并在下方输入“IPSec预共享密钥”,点击“确定”按钮结束:

至此,SoftetherVPN的所有配置均配置完毕,回到SSH重启整个系统即可。