Wenn Sie ssh
von Remote aus in den Host ssh
einsteigen können, müssen Sie die Firewall auf dem Host überprüfen, wenn Ports (22) an vm weitergeleitet werden.
Es gibt eine ähnliche Frage hier .
Dort ist es die ufw-Firewall, die eine Regel wie haben muss
ufw route allow 2222/tcp to 192.168.130.128 port 22
um die Verbindung zum Host auf Port 2222 zuzulassen und TCP an vm guest unter ip 192.168.130.128:22 weiterzuleiten
Und dieser Benutzer erwähnt, das ufw
ist ein Frontend für iptables
, also gehen Sie zu Ihrem Frontend oder bearbeiten Sie Ihre iptables auf diese Art.
iptables -t nat -A PREROUTING -m tcp -p tcp --dport 2222 -j DNAT --to-destination 192.168.130.128:22
Der fehlende Teil
Kurzfassung Sie haben gesagt iptables
, dass Sie eine PREROUTING
Regel zu Ihrem hinzufügen sollen nat table
. Der fehlende Teil ist:
#--------------------------------------------------------------- # After DNAT, the packets are routed via the filter table's # FORWARD chain. # Connections on port 22 to the target machine on the private # network must be allowed. #--------------------------------------------------------------- # The `\` masks the `linebreak` in the `bash command` # You can `copy & paste` all the lines at once # From the manual # Changing to specific IP and Interfaces # being: # `eth0` your host adapter and # `vmnet8` your guest adapter
Dies ist die Verbindung zum Zielrechner:
iptables -A FORWARD -p tcp -i eth0 -o vmnet8 -d 192.168.130.128 \ --dport 22 --sport 2222 -m state --state NEW -j ACCEPT
Und das sind die Filter von host interface
dir guest interface
und umgekehrt.
iptables -A FORWARD -t filter -o eth0 -m state \ --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -t filter -i vmnet8 -m state \ --state ESTABLISHED,RELATED -j ACCEPT