一根数据线将zero w打造成上级代理路由

目的:只要插上树莓派就使PC全部流量通过派走代理

 

将树莓派打造成上级路由,在任意有可用wifi的地方,让PC全部流量走代理实现代理匿名效果 (通过网线当上级路由也可以,这里不多说,方法一样)

由于是树莓派zerow,所以只需要一根micro数据线即可供电+通讯,相当便携,不多说

 

刷固件的过程就不说了,需要这个的不会连固件都不会刷

首先需要将树莓派打造成虚拟网卡,顺带配置wifi信息


# 在boot根目录下的操作:

  1.编辑 config.txt 在最后新起一行写入

dtoverlay=dwc2

  2.编辑 cmdline.txt 找到 rootwite  在后边加入(注意,新加入的字段与前后本来有的字段之间有且只有一个空格)

modules-load=dwc2,g_ether

  3.新建一个文件,重命名为 ssh (没有任何的文件后缀名)

 

# 在 /etc/network/interfaces 加入内容(ip和子网掩码并不唯一,可自行更改):

allow-hotplug usb0
auto usb0
iface usb0 inet static
address 192.168.188.1
netmask 255.255.255.0

iface wlan0 inet dhcp
wpa_conf /etc/wpa_supplicant/wpa_supplicant.conf

 

# 配置wifi:

打开 /etc/wpa_supplicant/wpa_supplicant.conf  添加wifi信息,例子如下:

network={
ssid="wifiname"
key_mgmt=NONE
}

 更多的配置规则看这位网友写的 Linux系统Wpa_supplicant用法小结

 


 

通过数据线连接好派(派连接在数据口)

如果被识别为串口设备请安装这个驱动 RPI Driver OTG.zip

直到这样子

 

手动配置一下ip

 

 

然后ssh连接到派 (putty,xshell,mobaxterm)

地址 192.168.188.1

默认用户名 pi  密码 raspberry

 


安装ss-libev

配置 /etc/ss-redir.json (具体配置自行更改,本地地址不要动)

{
  "server": "serverip",
  "server_port": 8388,
  "password": "password",
  "local_address": "0.0.0.0",
  "local_port": 12345,
  "method": "aes-256-cfb"
}

 

然后就是最重要的部分,配置iptables规则

python版ss可以加上 redsocks 来进行代理,python版功能比较落后,性能也没libev强大,对python版就不多说了,这里说libev自带的ss-redir

官方里是这么写的

(含敏感词汇删了,https://github.com/ss/ss-libev)

 

如果不需要非dns的udp流量的话这个也是很不错的选择,更改一下服务器地址

需要派本身走代理的话可以加上 sudo iptables -t nat -A OUTPUT -p tcp -j SS

 

不过总是有udp流量需求的(比如dota2),可以用这个规则

iptables -t nat -A PREROUTING -d SERVER_IP -j RETURN
iptables -t nat -A PREROUTING -d 127.0.0.0/24 -j RETURN
iptables -t nat -A PREROUTING -d 192.168.0.0/16 -j RETURN
iptables -t nat -A PREROUTING -d 0.0.0.0/8 -j RETURN
iptables -t nat -A PREROUTING -d 10.0.0.0/8 -j RETURN
iptables -t nat -A PREROUTING -d 172.16.0.0/12 -j RETURN
iptables -t nat -A PREROUTING -d 224.0.0.0/4 -j RETURN
iptables -t nat -A PREROUTING -d 240.0.0.0/4 -j RETURN
iptables -t nat -A PREROUTING -d 169.254.0.0/16 -j RETURN

iptables -t mangle -I PREROUTING -d SERVER_IP -j RETURN
iptables -t mangle -I PREROUTING -d 127.0.0.0/24 -j RETURN
iptables -t mangle -I PREROUTING -d 192.168.0.0/16 -j RETURN
iptables -t mangle -I PREROUTING -d 0.0.0.0/8 -j RETURN
iptables -t mangle -I PREROUTING -d 10.0.0.0/8 -j RETURN
iptables -t mangle -I PREROUTING -d 172.16.0.0/12 -j RETURN
iptables -t mangle -I PREROUTING -d 224.0.0.0/4 -j RETURN
iptables -t mangle -I PREROUTING -d 240.0.0.0/4 -j RETURN
iptables -t mangle -I PREROUTING -d 169.254.0.0/16 -j RETURN
iptables -t mangle -I PREROUTING -d 255.255.0.0/8 -j RETURN

iptables -t nat -A PREROUTING -p tcp -s YOUR_IP -j REDIRECT --to-ports 12345

ip rule add fwmark 0x01/0x01 table 100
ip route add local 0.0.0.0/0 dev lo table 100
iptables -t mangle -N SSUDP
iptables -t mangle -A SSUDP -p udp -j TPROXY --on-port 12345 --tproxy-mark 0x01/0x01
iptables -t mangle -A PREROUTING -j SSUDP

更改红字部分即可,如果端口更改把端口也修改一下就好,windows下你可以使用 NatTypeTester 来验证你的udp流量是否被转发

 

为了便于调试,这是清除所有规则的命令(可以把ss-redir启动命令加上-v查看详细日志)

sudo iptables -F
sudo iptables -X
sudo iptables -Z
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

 

由于iptables重启后是不保存规则的,我们可以用类似 iptables-persistent 的软件,也可以和我一样直接把规则命令写入开机事件,我觉得这样更便于调试

设置开机启动(写在exit 0之前),写在/etc/rc.local

# 改mac地址(需要的话)
sudo macchanger -A wlan0

# 开启wifi并按照配置连接
sudo ifup wlan0

#设置nat链直连地址
sudo iptables -t nat -A PREROUTING -d SERVER_IP -j RETURN
sudo iptables -t nat -A PREROUTING -d 127.0.0.0/24 -j RETURN
sudo iptables -t nat -A PREROUTING -d 192.168.0.0/16 -j RETURN
sudo iptables -t nat -A PREROUTING -d 0.0.0.0/8 -j RETURN
sudo iptables -t nat -A PREROUTING -d 10.0.0.0/8 -j RETURN
sudo iptables -t nat -A PREROUTING -d 172.16.0.0/12 -j RETURN
sudo iptables -t nat -A PREROUTING -d 224.0.0.0/4 -j RETURN
sudo iptables -t nat -A PREROUTING -d 240.0.0.0/4 -j RETURN
sudo iptables -t nat -A PREROUTING -d 169.254.0.0/16 -j RETURN

#设置mangle链直连地址
sudo iptables -t mangle -I PREROUTING -d SERVER_IP -j RETURN
sudo iptables -t mangle -I PREROUTING -d 127.0.0.0/24 -j RETURN
sudo iptables -t mangle -I PREROUTING -d 192.168.0.0/16 -j RETURN
sudo iptables -t mangle -I PREROUTING -d 0.0.0.0/8 -j RETURN
sudo iptables -t mangle -I PREROUTING -d 10.0.0.0/8 -j RETURN
sudo iptables -t mangle -I PREROUTING -d 172.16.0.0/12 -j RETURN
sudo iptables -t mangle -I PREROUTING -d 224.0.0.0/4 -j RETURN
sudo iptables -t mangle -I PREROUTING -d 240.0.0.0/4 -j RETURN
sudo iptables -t mangle -I PREROUTING -d 169.254.0.0/16 -j RETURN
sudo iptables -t mangle -I PREROUTING -d 255.255.0.0/8 -j RETURN

#设置转发
sudo iptables -t nat -A PREROUTING -p tcp -s YOUR_IP -j REDIRECT --to-ports 12345

#设置udp
sudo ip rule add fwmark 0x01/0x01 table 100
sudo ip route add local 0.0.0.0/0 dev lo table 100
sudo iptables -t mangle -N SSUDP
sudo iptables -t mangle -A SSUDP -p udp -j TPROXY --on-port 12345 --tproxy-mark 0x01/0x01
sudo iptables -t mangle -A PREROUTING -j SSUDP

# 启动 ss-redir
sudo ss-redir -c /etc/ss-redir.json -u

 


 

现在,在配置过wifi信息的信号范围内,只要插上派,系统会自动识别网卡,所有流量都通过派进行转发代理

说伪路由是因为只能直连本机,但可以电脑同时开一个热点给其他设备用,有一样的效果

 

后记:

我在上篇一根线玩转树莓派中建议大家将派的地址设置为192.168.137.*,是因为PC分享网络时,会将目标网卡ip地址强行设置为192.168.137.1,为方便才这样设置ip

写本文的时候发现,电脑在建立无线热点时会把热点网卡的本机ip也设置为192.168.137.1,如果你并不需要派通过本机上网,为避免冲突,建议你把ip设置为其他网段(例如本文的192.168.188.*)

 

然后就是在实际使用中可能出现网络一网络二到网络N的情况,你可以不管它也可以删除,在注册表(regedit)的

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\profile\

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged\

你可以把子内容全部删除,也可以删除你想删除的网络N,立即重启,重启后稍微等等就好

写个reg脚本可以方便一点

Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\profiles]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\profiles]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged]

 

posted @ 2018-04-09 23:22  JamVayne  阅读(363)  评论(0)    收藏  举报