gor*_*i93 7 networking linux routing
我遇到了一个找不到解决方案的问题。我有带两个网卡的 linux pc。第一个 nic(eth1)连接到公共 ip(可能是交换机或其他什么,并不真正重要)所以 eth1 连接到 wan 和另一个我连接到交换机的 eth0 并使其成为 lan nic。配置:
eth1 ip 地址 88.200.1xx.xxx //xxx 是出于安全原因 eth0 ip 地址 192.168.1.1
wan ------> [eth1 (linux PC) eth0]<---->[switch]<----> [eth1 (PC1)]
现在我想把这两个网络连接起来,这样PC1就可以访问linux PC和wan了。我想我知道该怎么做,但我无法正确配置。这是我尝试过的:
我该怎么做或如何做到这一点,我正在尝试使用 linux route 命令,但我被卡住了。请帮忙。
Goe*_*oez 18
如果您在 Linux 机器上有 2 个 NIC,并且都配置了 IP,则您不必添加从一个网络到另一个网络的路由。这将自动完成。
在 WAN NIC 上添加默认网关地址。不要在 LAN NIC 的配置中这样做。
然后在内核中启用转发:
echo 1 >> /proc/sys/net/ipv4/ip_forward
Run Code Online (Sandbox Code Playgroud)
要使其在启动时自动设置此值,请取消注释此行/etc/sysctl.conf
#net.ipv4.ip_forward=1
Run Code Online (Sandbox Code Playgroud)
然后在iptables中设置一些规则来执行natting和转发:
# 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
Run Code Online (Sandbox Code Playgroud)
应该这样做。