我正在尝试重新创建格式化和重新安装之前的设置,但我不记得我到底做了什么。
所以我当前的设置如下:
ADSL/路由器+wifi 作为网关 192.168.1.1,所有通过以太网或 wifi 连接的计算机都可以访问互联网
树莓派通过以太网(ip:192.168.1.100)连接到 ADSL 路由器,并通过 tun0 连接(子网 10.xxx)连接到远程 VPN 提供商
我之前(不知怎么地)做过的事情是将 Raspberry Pi 设置为备用网关。因此,我可以转到客户端(连接到 ADSL 路由器),将网关从原来的 192.168.1.1 更改为 192.168.1.100,并且该客户端的所有流量都将通过 Raspberry Pi 通过 VPN(因此它将使用 VPN 服务器的公共 IPV4 地址)。
我不记得之前是如何设置的,但现在只需在客户端上选择网关 192.168.1.100 就不会将任何内容路由到外部(因此客户端没有互联网连接)。
有人能给我一些建议关于如何设置这个东西吗?
非常感谢
PS 我根本不想使用 pi 上的 wifi
pi 上的路由表如下所示(并且 PI 可以访问互联网):
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.10.8.53 0.0.0.0 UG 0 0 0 tun0
default fritz.box 0.0.0.0 UG 202 0 0 eth0
10.10.8.1 10.10.8.53 255.255.255.255 UGH 0 0 0 tun0
10.10.8.53 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
li1426-184.memb fritz.box 255.255.255.255 UGH 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0
答案1
有人能给我一些建议关于如何设置这个东西吗?
看看tcpdump -n -i <interface>
以确定什么是或不是现在发生了什么。来自 LAN 设备的数据包是否到达您的 Pi?Pi 是否尝试通过 VPN 接口将它们发送出去?VPN 客户端是否向 VPN 服务器发送任何内容?Pi 是否收到任何内容后退? 设置或取消设置什么取决于缺少什么。
我不记得之前是如何设置的,但现在只需在客户端上选择网关 192.168.1.100 就不会将任何内容路由到外部(因此客户端没有互联网连接)。
确保路由已启用在网关上(通过sysctl
),然后确保其防火墙“转发”规则允许数据包通过。
对于大多数 VPN 连接,路由还不够。Pi 可能已经做路由数据包,如果您实际使用查看您的网络接口tcpdump
,但它们不会产生任何回复 - 因为 VPN 服务器不知道网关 LAN 侧的寻址并且无法回复 192.168.1.x(并且可能直接丢弃来自这些地址的数据包)。
如果是这种情况,您还需要 DNAT 或伪装,以便您的 LAN 设备的 IP 地址将被重写以使用网关自己的 VPN IP 地址。这与MASQUERADE
其他DNAT
地方记录的 iptables(或 nftables)规则相同。
答案2
对于临时更改,请使用以下命令:
sudo route delete default gw 192.168.1.1 eth0
sudo route add default gw 192.168.1.100 eth0
对于永久性的改变:
- 编辑文件
/etc/network/interfaces
- 找到要更改的适配器部分,通常
eth0
用于有线 - 添加网关 IP 地址,例如,
gateway 192.168.1.100
- 保存更改
- 通过 重新启动网络
sudo /etc/init.d/networking restart
。