Linux
linux上兩個網路之間的路由?
我被一個問題困住了,我找不到解決方案。我有兩個 NIC 的 linux pc。第一個網卡(eth1)連接到公共IP(可能是交換機或其他什麼,並不重要)所以eth1連接到wan和另一個我連接到交換機並使其成為lan nic的eth0。配置:
eth1 ip address 88.200.1xx.xxx //xxx 是出於安全原因 eth0 ip address 192.168.1.1
wan ——>
$$ eth1 (linux PC) eth0 $$<—->$$ switch $$<—->$$ eth1 (PC1) $$ 現在我想把這兩個網路連接起來,這樣PC1就可以訪問linux PC和wan了。我想我知道該怎麼做,但我無法正確配置它。這是我嘗試過的:
- 我開啟了 ip 轉發(當然)
- 我將 eth1 預設 gw 設置為 wan 上的正確 ip
- 我試圖將 eth0 預設 gw 設置為相同的 ip(但我不能)
我該怎麼做或怎麼做,我正在嘗試使用 linux route 命令,但我被卡住了。請幫忙。
如果您在 Linux 機器上有 2 個 NIC,都配置了 IP,則您不必添加從一個網路到另一個網路的路由。這將自動完成。
在 WAN NIC 上添加預設網關地址。不要在 LAN NIC 的配置中執行此操作。
然後在核心中啟用轉發:
echo 1 >> /proc/sys/net/ipv4/ip_forward
要使其在啟動時自動設置此值,請取消註釋此行
/etc/sysctl.conf
#net.ipv4.ip_forward=1
然後在 iptables 中設置一些規則來執行 natting 和 forwarding:
# Always accept loopback traffic iptables -A INPUT -i lo -j ACCEPT # We allow traffic from the LAN side iptables -A INPUT -i eth0 -j ACCEPT ###################################################################### # # ROUTING # ###################################################################### # eth0 is LAN # eth1 is WAN # Allow established connections iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Masquerade. iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE # fowarding iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT # Allow outgoing connections from the LAN side. iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
應該這樣做。