您的位置: 首页 » 翻越奥义 » ShadowVPN配合路由器使用备要

ShadowVPN配合路由器使用备要

作者:liyangyijie / 时间:December 28, 2015 /分类:翻越奥义 / 标签:none /阅览次数:9,252

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扩图

添加新评论