我有一个可以连接互联网的家庭路由器。我还有一台计算机,但无法直接连接到路由器。希望我有两个我不知道该怎么办的树莓派。
我根据@User1686的回答在 PI #1 上运行了以下命令:
# Set static IP for eth0 interface
ip addr add 192.168.1.100/24 dev ppp0
# Set static IP for ppp0 interface
ip addr add 192.168.0.1/24 dev ppp0
# Enable IP forwarding
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
echo 'net.ipv6.conf.all.forwarding=1' >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
# Route packets to PI #2
ip route add 192.168.2.0/24 via 192.168.0.2 dev ppp0
# Masquerade all outgoing packets with his own IP
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
并在 PI #2 上运行以下命令:
# Set static IP for eth0 interface
ip addr add 192.168.2.1/24 dev eth0
# Set static IP for ppp0 interface
ip addr add 192.168.0.2/24 dev ppp0
# Enable IP forwarding
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
echo 'net.ipv6.conf.all.forwarding=1' >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
# Forward packets to PI #1
ip route add default via 192.168.0.1
ip route add 192.168.1.0/24 via 192.168.0.1 dev ppp0
# Masquerade all outgoing packets with his own IP
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
我还在计算机上启用了静态 IP 以连接到 PI #2:
# Set static IP
ip addr add 192.168.2.100/24 dev eth0
# Forward packets to PI #2
ip route add default via 192.168.2.1
# Add DNS server
echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf
我遇到了一些问题,因为我无法从我的计算机访问某些 IP 和互联网。这是我尝试过的快速表格:
命令 | 圆周率 #1 | 圆周率#2 | 电脑 | HomeRouter 上的任何设备 |
---|---|---|---|---|
平 192.168.0.1 | 好的 | 好的 | 好的 | 没有 |
平 192.168.0.2 | 好的 | 好的 | 好的 | 没有 |
平 192.168.1.1 | 好的 | 好的 | 好的 | 好的 |
ping 192.168.2.1 | 好的 | 好的 | 好的 | 没有 |
平 192.168.1.100 | 好的 | 好的 | 好的 | 好的 |
平 192.168.2.100 | 好的 | 好的 | 好的 | 没有 |
卷曲8.8.8.8 | 好的 | 好的 | 好的 | 好的 |
卷曲 google.com | 好的 | 好的 | 好的 | 好的 |
根据@User1686的回答,我的计算机现在能够与我的家庭路由器上的其他设备进行通信,但它们现在能够与我的计算机进行通信(ping 192.168.2.100
例如)。
有没有一种方法可以在不编辑路由器配置的情况下路由数据包?