Linux

linux上兩個網路之間的路由?

  • March 24, 2021

我被一個問題困住了,我找不到解決方案。我有兩個 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了。我想我知道該怎麼做,但我無法正確配置它。這是我嘗試過的:

  1. 我開啟了 ip 轉發(當然)
  2. 我將 eth1 預設 gw 設置為 wan 上的正確 ip
  3. 我試圖將 eth0 預設 gw 設置為相同的 ip(但我不能)

我該怎麼做或怎麼做,我正在嘗試使用 linux route 命令,但我被卡住了。請幫忙。

如果您在 Linux 機器上有 2 個 NIC,都配置了 IP,則您不必添加從一個網路到另一個網路的路由。這將自動完成。

在 WAN NIC 上添加預設網關地址。不要在 LAN NIC 的配置中執行此操作。

然後在核心中啟用轉發:

echo 1 &gt;&gt; /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

應該這樣做。

引用自:https://serverfault.com/questions/453254