使用SSH为局域网共享IPV6和Tor,娱乐和翻墙两不误

2014/04/08
一台Linux主机(可以是虚拟机或树莓派)作为网关,通过SSH建立隧道连接VPS,然后在无线网络或任何能对外联网的局域网中共享IPV6和Tor,下面将逐步说明。

首先要有一个境外的VPS,在VPS上使用tunnelbroker建立IPV6隧道,可以得到/64的IPV6地址,网上都有详细的方法,这里略过。

如何在任意局域网中共享IPV6呢? 重点就是使用OpenSSH,假设VPS和网关都使用Debian,在tunnelbroker分配到的IPV6地址段为2001:470:xxxx:yyyy::/64,VPS的IP为1.1.1.1;

配置VPS上的SSH,/etc/ssh/sshd_config,添加PermitTunnel=yes,我们要通过SSH建立的是Layer 3 VPN,需要VPS支持TUN/TAP,不是常见的端口转发;

在网关执行:
ssh -f root@1.1.1.1 -w 0:0 -c arcfour128 true

-f是后台运行SSH,-w 0:0是SSH建立隧道的TUN设备名称,使用arcfour128算法加密可以提高速度,true可以替换成下面在VPS配置TUN的脚本。

接下来是在VPS执行:
ip link set tun0 up
ip addr add 2001:470:xxxx:yyyy::1111/96 dev tun0

网关执行:
ip link set tun0 up
ip addr add 2001:470:xxxx:yyyy::2222/96 dev tun0
route -A inet6 add ::/0 dev tun0

到这里网关应该具有访问IPV6的能力了,不需要修改路由器规则,也不需要有公共的IPV4 IP。

之后就是在网关安装radvd,通过SLAAC为整个局域网自动分配IPV6地址,出于安全的考虑,建议分配一个保留的地址段,比如:2001:db8::/64,在网关设置IPV6 NAT,执行:
ip6tables -t nat -A POSTROUTING -o tun0 -s 2001:db8::/64 -j MASQUERADE

重点的步骤就是上面这些,在网关使用ssh -D设一个socks5代理,这样局域网的用户通过这个socks5代理连接Tor Browser,高匿上网就解决了。

实现IPV4和IPV6双线连接,IPV4访问国内网络,IPV6访问youtube、facebook,Tor Browser访问有匿名需要的网站,各司其职。
VPS推荐KVM,OpenVZ内核有限制,添加IPV6 Tunnel比较麻烦。

VPS和网关需要设置内核参数,/etc/sysctl.conf:
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

执行sysctl -p让参数生效。

树莓派是网关的最佳选择,小巧省电,配置好的话,几乎可以在任何接入的局域网络中分享IPV6和Socks5代理,以局域网为单位进行操作,还可以有效解决共享翻墙的信任问题。


Via:https://lanternforum.greatfire.org/viewtopic.php?f=4&t=27
By:ldpqk

Related Posts