跳至内容
sdvcrx's wiki
用户工具
登录
站点工具
搜索
工具
显示页面
过去修订
Export to Markdown
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您的足迹:
shadowvpn
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== ShadowVpn ====== ShadowVPN 是一个基于 libsodium 的高速、安全的 VPN。特别为低端硬件,如 OpenWRT 路由器设计。 https://shadowvpn.org/ https://github.com/clowwindy/ShadowVPN ==== 优势 ==== 无状态VPN,低负载低资源占用,适合安装在OpenWRT上,在没有限制UDP包数量的网络环境上速度飞快(例如校园网),在联通/移动线路上速度快于[[shadowsocks|ShadowSocks]]。<del>电信就不要想了,用什么都是这么慢。</del> ===== 安装 ===== ==== 编译 ==== <code> sudo apt-get install build-essential automake libtool git clone https://github.com/clowwindy/ShadowVPN.git git submodule update --init ./autogen.sh ./configure --enable-static --sysconfdir=/etc make && sudo make install </code> ==== 编译为deb包 ==== <code> sudo apt-get install build-essential automake libtool gawk debhelper git clone https://github.com/clowwindy/ShadowVPN.git git submodule update --init ./autogen.sh dpkg-buildpackage sudo dpkg -i ../shadowvpn_xxx.deb </code> ==== 添加第三方源 ==== 在''Debian 7''和''Ubuntu 12+''可以添加下一行到''/etc/apt/sources.list'' <code> deb http://shadowvpn.org/debian wheezy main </code> 然后安装deb包即可: <code shell> sudo apt-get update sudo apt-get install shadowvpn sudo service shadowvpn restart </code> ===== 路由表 ===== VPN是全局的,在访问国内网站时速度不佳,而且会暴露自己代理服务器IP,所以有必要配置路由表绕过国内网站。 这里采用''chnroutes'' + ''ipset''白名单的方式实现绕过国内网站。其中''chnroutes''可绕过所有国内的IP,''ipset''作为补充方案,指定你不想经过VPN访问的网站。 ==== 生成chnroutes ==== 获取''chnroute.txt'': <code> curl 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | grep ipv4 | grep CN | awk -F\| '{ printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > chnroute.txt </code> 使用下面的''gen_chnroutes.sh''生成''chnroutes.sh'' <code> #!/bin/sh path=$(dirname $0) list=$(grep -E "^([0-9]{1,3}\.){3}[0-9]{1,3}" $path/chnroute.txt |\ sed -e "s/^/route \$action /" -e "s/$/ \$suf/") cat <<-EOH > $path/chnroutes.sh #!/bin/sh if [ "\$1" = "down" -o "\$1" = "del" ]; then action=del else action=add suf="via \$(ip route show 0/0 | grep via | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}')" fi ip -batch - <<EOF $list route \$action 172.16.0.0/12 \$suf route \$action 192.168.0.0/16 \$suf EOF EOH </code> ==== 配置ipset ==== 使用下面脚本设置ipset <code shell> #!/bin/bash if [ "$1" = "down" -o "$1" = "del" ]; then ip rule del table cndirect ipset destroy whitelist iptables -t mangle -D fwmark -m set --match-set whitelist dst -j MARK --set-mark 0xffff iptables -t mangle -F PREROUTING iptables -t mangle -X fwmark exit fi suf="via $(ip route show 0/0 | grep via | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}')" # restore ipset conf #ipset restore /etc/ipset.conf [ $(ipset list whitelist 2>/dev/null| wc -l) -eq 0 ] && { ipset -N whitelist iphash; } iptables -t mangle -N fwmark iptables -t mangle -A PREROUTING -j fwmark # optional #iptables -t mangle -A OUTPUT -j fwmark iptables -t mangle -A fwmark -m set --match-set whitelist dst -j MARK --set-mark 0xffff # echo "99 cndirect" >> /etc/iproute2/rt_tables ip rule add fwmark 0xffff table cndirect ip route add default dev enp8s0 table cndirect </code> ==== 配置dnsmasq ==== ''dnsmasq''的''ipset''配置格式如下: <code> ipset=/.douban.com/whitelist </code>
shadowvpn.txt
· 最后更改: 2023/12/03 10:24 由
127.0.0.1
页面工具
显示页面
过去修订
反向链接
Export to Markdown
回到顶部