在两个接口之间转发流量

在两个接口之间转发流量

我有一个带有两个接口的Linux机器:

~#ip -4 addr show scope global
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
inet 192.168.45.101/24 brd 192.168.45.255 scope global eth0
8: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
inet 172.17.1.230 peer 172.17.1.229/32 scope global tun0
10: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
inet 192.168.1.1/24 brd 192.168.1.255 scope global eth1
  • Eth0 连接到我们的本地网络(其他设备可以在这个网络上找到)
  • Eth1 连接到一个设备(我们将其命名为 BD),该设备具有静态 IP 192.168.1.5
  • Tun0 是我们的 VPN 网络

我有两个问题:)

  1. 我如何从本地网络上的机器(通过点击浏览器 192.168.45.101:8080)或 VPN 网络上的机器(通过点击浏览器 172.17.1.230:8080)访问 BD 的 Web 服务器(192.168.1.5:80)?我真的是网络配置方面的新手 :P,所以我从中了解到我应该将流量从端口 8080 路由到端口 80
  2. BD 机器有另一个 TCP 端口 5017,用于发送和接收一些数据。我如何从连接到本地网络或 VPN 网络的机器监听此端口?

以下是我对第一个问题的尝试(当然没有奏效):

~# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.5:80
~# iptables -t nat -A PREROUTING -i tun0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.5:80
~#iptables -A FORWARD -i eth0 -p tcp --dport 80 -j ACCEPT
~#iptables -A FORWARD -i tun0 -p tcp --dport 80 -j ACCEPT

以下是我对第二个问题的尝试(同样的事情..没有起作用):

~# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5017-j DNAT --to-destination 192.168.1.5:5017
~# iptables -t nat -A PREROUTING -i tun0 -p tcp --dport 5017-j DNAT --to-destination 192.168.1.5:5017
~#iptables -A FORWARD -i eth0 -p tcp --dport 5017 -j ACCEPT
~#iptables -A FORWARD -i tun0 -p tcp --dport 5017 -j ACCEPT

有人可以帮忙吗?...(我花了 3 天时间解决这个问题,而且我有一个最后期限)

谢谢

答案1

将流量从一台服务器重定向到另一台服务器的步骤如下:

#enable IP forwarding:
sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf

#then activate the changes
sudo sysctl -p

#Start iptables
sudo systemctl start iptables

#Check iptables rules:
(check that you don't have a deny policy )

#You can flush all rule to start in a clean env:
sudo iptables -F
#+For the nat 
sudo iptables -t nat -F

#Add rules
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.5:80

#To check :
sudo iptables -t nat -L -n

#Save the iptables rule :
sudo iptables-save | sudo tee /etc/iptables.up.rules

我希望它对你有用:)

相关内容