
Ich verwende Ubuntu 20.04. Es funktioniert gut, indem es HTTP-Anfragen, die an Port 8080 des lokalen Computers gerichtet sind, an Port 80 eines anderen Computers weiterleitet. Aber als ich iptables-Regeln so einstellte, dass SMB-Anfragen, die an einen lokalen Computer gerichtet sind, an einen anderen Computer weitergeleitet werden, auf dem ein SMB-Server läuft, schlug dies fehl. Es gibt nur Treffer bei PREROUTING, aber keine bei POSTROUTING. Die iptables-Befehle lauten wie folgt:
sudo iptables -t nat -A PREROUTING -p tcp --match multiport --dports 445,137,138,139 -j DNAT --to-destination 192.168.10.162
sudo iptables -t nat -A POSTROUTING -d 192.168.10.162 -j MASQUERADE
Nach dem Ausführen von $sudo iptables -t nat -L -v wird Folgendes angezeigt:
Chain PREROUTING (policy ACCEPT 3981 packets, 847K bytes)
pkts bytes target prot opt in out source destination
60 3156 DNAT tcp -- any any anywhere anywhere multiport dports netbios-ns,netbios-dgm,netbios-ssn,microsoft-ds to:192.168.10.162
Chain INPUT (policy ACCEPT 604 packets, 86773 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 57 packets, 4781 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 57 packets, 4781 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- any any anywhere 192.168.10.162
Ubuntu 20.04 stellt eine Verbindung zu einem Switch her, der wiederum eine Verbindung zu einem anderen Switch herstellt, mit dem wiederum die andere Linux-Maschine verbunden ist. Ich verwende einen Win10-PC, der mit demselben Switch wie Ubuntu 20.04 verbunden ist, um Ubuntu 20.04 aufzurufen.
Antwort1
Es tut mir leid, Ihnen allen mitteilen zu müssen, dass mir ein Fehler auf niedriger Ebene unterlaufen ist. Ich habe vergessen, IPFORWARD auf der Linux-Maschine zu aktivieren. Nachdem ich
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Es klappt.