ShadowVPN配合路由器使用备要
ShadowVPN已经停止开发,这里使用0.1.6版本进行说明。
为了方便游戏,作为二级路由全局使用。
1,服务器端源码编译安装
为了以后方便,这里直接做成deb包。先安装依赖
sudo apt-get install build-essential automake libtool gawk debhelper git
原来项目已经和谐,只好找些fork版的源码下载,例如下面的
https://github.com/langlichuan123/ShadowVPN/archive/0.1.7.tar.gz
下载的包解压后是不带libsodium库的,需要额外git下来。
cd ShadowVPN-0.1.7 git clone https://github.com/jedisct1/libsodium.git ./autogen.sh dpkg-buildpackage cd ..
可以发现shadowvpn_0.1.6-1_amd64.deb安装包。
这样x64服务器可以直接安装deb包了,不必再重新构建。
sudo dpkg -i shadowvpn_0.1.6-1_amd64.deb
2,服务器端配置
确保/etc/default/shadowvpn文件中的CONFFILE="/etc/shadowvpn/server.conf"。
然后修改/etc/shadowvpn/server.conf文件中相应的配置。
#建议使用53端口,一般网络53限制小。 port=53 # 使用下面命令 # dd if=/dev/urandom bs=64 count=1 | md5sum # 可以获取一串随机密码,服务端客户端一致 password=aac3671137e54ee6e7b5c73d2cc499e2 #mtu需要根据自己需要修改 mtu=1400
配置完成后,重新启动服务端。
需要注意的是如何获取适合的mtu数值。
mtu=X(Ethernet) - 20(IPv4, or 40 for IPv6) - 8(UDP) - 24(ShadowVPN)
本地电脑,如Windows系统下,cmd执行
ping -f -l 1452 www.baidu.com
逐步加大或者减少1452这个数值,直到恰好不会出现DF拆包的提示或者百分百丢包。记下这个X。
例如,记下X是1452,计算得到mtu=1452-20-8-24=1400。
那么在服务端的server.conf填入1400。
3,路由端获取ipk
获取ipk文件,a、b方法任取其一。
a,下载预编译版本
http://sourceforge.net/projects/openwrt-dist/files/shadowvpn/0.1.6-ae532bc/
b,使用SDK编译ipk文件
在deibian或者ubuntu上先安装依赖,
sudo apt-get update sudo apt-get install libncurses5-dev mercurial zlib1g-dev gawk unzip build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext libssl-dev quilt xsltproc libxml-parser-perl bzr ecj cvs sudo apt-get install ccache
然后按照需求下载SDK,以编译ar71xx平台的ipk为例,到openwrt的官网下载所需SDK。
https://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/
然后执行
tar xf OpenWrt-SDK-15.05-ar71xx-* cd OpenWrt-SDK-15.05-ar71xx-* cd package curl -OSL 'https://github.com/aa65535/openwrt-shadowvpn/archive/v0.1.6.tar.gz' tar xvf v0.1.6.tar.gz cd .. make defconfig make prereq make menuconfig #选择要编译的包 Network -> ShadowVPN(按键M 独立安装包),然后save,之后退出即可。 make V=99
在bin/ar71xx/packages/base/目录下可以找到编译好的ShadowVPN_0.1.6-1_ar71xx.ipk。
4,路由端安装ipk
将ipk文件通过WinSCP放到自己的路由/tmp目录下。
先更新一下源,该ipk依赖kmod-tun、ip。
opkg update opkg -i ShadowVPN_0.1.6-1_ar71xx.ipk
5,路由端配置
只需修改/etc/shadowvpn/client.conf文件中相应配置。
# 服务器ip地址 server=x.x.x.x #端口 port=53 #与服务端一致 password=aac3671137e54ee6e7b5c73d2cc499e2 #与服务端一致 mtu=1400 #为了防止日志积累,塞满内存,把日志释放掉。 logfile=/dev/null
在/etc/config/network文件中修改lan接口中内网网关,防止冲突。然后添加额外dns,一般用8.8.8.8,这里用香港的某dns优先。
config interface 'lan' ..... option ipaddr '192.168.77.1' ...... option dns '203.80.96.10 8.8.4.4'
开机自动启动如下
/etc/init.d/shadowvpn enable
TTL值默认情况下,Linux系统的TTL值为64或255,Windows NT/2000/XP系统的默认TTL值为128,Win7系统的TTL值是64,Windows 98系统的TTL值为32。255-248 = 7,经过了7路由。
上一篇 : 谷歌以图搜图小技巧 下一篇 : waifu2x-caffe扩图