Iptables
在兩個介面之間轉發流量
我有一個帶有兩個介面的 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 連接到一個具有靜態 IP 192.168.1.5 的設備(讓它命名為 BD)
- Tun0 是我們的 VPN 網路
我有兩個問題:)
- 如何從本地網路(通過點擊瀏覽器 192.168.45.101:8080)或 VPN 網路(通過點擊瀏覽器 172.17)上的機器訪問 BD (192.168.1.5:80) 的 Web 伺服器.1.230:8080)?我真的是網路配置的大初學者:P 所以我明白我應該將流量從埠 8080 路由到埠 80
- 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 天時間,我有截止日期)
謝謝
將流量從一台伺服器重定向到另一台伺服器是有前提的:
#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
我希望它對你有用:)