利用UPnP做端口转发,省去了设置静态IP和静态路由的麻烦
比如说 派的IP是DHCP分配的,想连接SSH需要知道IP是多少。或者发起连接SSH的电脑不在路由的局域网内,需要在路由上设置静态路由,或者端口映射。这样比较麻烦,可以在派上建立一个upnp客户端服务,自动向路由注册端口映射,这样ssh访问pi的时候直接访问路由器就可以了。
准备:
http://miniupnp.free.fr/
在这里下载miniupnpc,解压后直接make就可以,把编译出来的upnpc-static重命名为upnpc放到系统的PATH下即可
写一个服务脚本:
#!/bin/bash
while true; do
cur_ip=$(ifconfig wlan0|awk '$1=="inet"{print $2}')
if [[ $cur_ip =~ ^{0,3}(.{0,3}){3}$ ]];then
upnpc -d 22022 TCP
upnpc -e raspberry_pi_ssh -a $cur_ip 22 22022 TCP 300
sleep 301
else
sleep 30
fi
sleep 5
done
设置为开机自动运行即可,如果是systemd的可以写一个service,让其在NetworkManager启动后运行
这里设置的是路由的22022映射到pi的22端口
以后只要连接
ssh user@router_ip -p 22022即可
坐个沙发先
页:
[1]