无法修改LAN规则时,通过OpenVPN服务器VPS中转实现PC远程SSH控制树莓派的配置咨询
无法修改LAN规则时,通过OpenVPN服务器VPS中转实现PC远程SSH控制树莓派的配置咨询
嗨,你的思路完全没问题!用VPS搭OpenVPN服务器让两边设备主动连进来,确实是绕过LAN防火墙限制的最优解。我给你一步步拆解怎么实现,核心就是让VPN内网里的PC和树莓派能互相通信,VPS负责中转流量:
第一步:配置VPS上的OpenVPN服务器
这一步是关键,要让VPS具备流量转发和客户端互通的能力:
- 开启内核IP转发:VPS需要能转发两个客户端之间的流量,编辑
/etc/sysctl.conf,找到net.ipv4.ip_forward=1这行,去掉前面的注释符号#,然后执行sudo sysctl -p让配置生效。 - 调整OpenVPN服务器配置:打开服务器配置文件(通常是
/etc/openvpn/server.conf),确保添加或保留以下核心配置:server 10.8.0.0 255.255.255.0:定义OpenVPN的虚拟内网网段(默认即可,不用改)client-to-client:这个一定要加!开启后VPS会自动转发VPN内网中客户端之间的流量,不用额外写路由规则proto udp:优先用UDP协议,速度更快;如果你的网络限制UDP,就改成proto tcppush "redirect-gateway def1 bypass-dhcp"(可选):如果想让PC/树莓派的所有流量都走VPS就加这个;如果只想让访问VPN内网的流量走VPS,就换成push "route 10.8.0.0 255.255.255.0"
- 重启OpenVPN服务:执行
sudo systemctl restart openvpn-server@server让配置生效
第二步:配置PC和树莓派的OpenVPN客户端
让两台设备主动连入VPS的VPN内网:
- 把VPS上生成的客户端配置文件(比如
client.ovpn)传到PC和树莓派上,确保文件里的remote字段是VPS的公网IP或域名,端口和服务器配置一致(默认1194) - 安装OpenVPN客户端:
- Ubuntu PC:
sudo apt update && sudo apt install openvpn - 树莓派Raspbian:
sudo apt update && sudo apt install openvpn
- Ubuntu PC:
- 启动连接:执行
sudo openvpn --config client.ovpn,也可以设置成开机自启(比如把配置文件放到/etc/openvpn/client/,然后执行sudo systemctl enable --now openvpn-client@client),这样树莓派开机就自动连VPN,随时能访问
第三步:测试SSH连接
等两台设备都连入VPN后,就可以直接SSH了:
- 先查看各自的VPN内网IP:执行
ip addr show tun0,会看到类似10.8.0.6这样的地址(树莓派)和10.8.0.2(PC) - 在PC上直接SSH到树莓派的VPN IP:比如
ssh pi@10.8.0.6(假设树莓派用户名是pi),这时候流量完全走VPN隧道,绕过了LAN-01的防火墙限制
可选优化:让配置更省心
- 给树莓派固定VPN IP:在VPS上创建
/etc/openvpn/ccd目录,然后在里面新建一个和树莓派客户端同名的文件(比如raspberry),写入ifconfig-push 10.8.0.10 10.8.0.11,这样树莓派每次连VPN都会拿到固定的10.8.0.10,不用每次查IP - 配置VPS防火墙放行流量:如果VPS用ufw防火墙,执行以下命令:
sudo ufw allow 1194/udp # 放行OpenVPN端口 sudo ufw allow ssh # 保留VPS自身的SSH访问 sudo ufw allow from 10.8.0.0/24 to any # 放行VPN内网的流量 sudo ufw reload
原理其实很简单:树莓派和PC都是主动发起连接到VPS的OpenVPN服务器,属于出站流量,一般家庭LAN的防火墙不会阻止这类连接;当两台设备都进入同一个VPN内网后,client-to-client配置让VPS自动中转它们之间的SSH流量,完全不需要修改LAN-01的任何规则。
备注:内容来源于stack exchange,提问作者adiu11
相关产品推荐
相关产品推荐

