允许从 eth2 通过 ppp0 公开访问互联网

允许从 eth2 通过 ppp0 公开访问互联网

因此,我尝试通过 ppp0 接口(类似于 4g 加密狗)设置热点对互联网的访问。

我已经为 ppp0 设置了具有最高优先级(度量 1)的默认路由。

将所有 iptable 策略设置为 ALLOW 并启用 ip 转发(如下所示),但我仍然无法 ping 通

ping -I eth2 8.8.8.8

请注意,ping -I ppp0 8.8.8.8 有效,并且默认操作(ping 8.8.8.8)通过 ppp0

这是我的配置

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.16.172.175   0.0.0.0         UG    1      0        0 ppp0
0.0.0.0         192.168.0.1     0.0.0.0         UG    10     0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.82.0    0.0.0.0         255.255.255.0   U     0      0        0 eth2

# cat /proc/sys/net/ipv4/ip_forward
1

iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P POSTROUTING ACCEPT

答案1

仅有端口转发是不够的。

本地 wifi 网络上的设备具有 IP 192.168.0.*。您将它们设置为转发到路由器。然后路由器将它们的数据包转发到互联网 - 而不更改它们。

问题是只有您的路由器知道如何处理192.168.0.*,因为它是一个本地地址空间。

您需要在路由器上设置 IP 伪装。本质上,它需要更改途中的传出数据包,就好像它们是直接来自它一样。当然,它需要对传入数据包进行反向操作。您可以阅读更多详细信息这里

除此之外,你还需要一个DHCP 服务器用于网络自动配置,并且至少有一个本地缓存 DNS 服务器也会很有用。

相关内容