Добрый день. Я использую человечность 18 и хочу подключение к моему контейнеру через ssh. Это - мой контейнер
cont | RUNNING | 10.78.195.190 (eth0) | fd42:4be2:f986:212a:216:3eff:fee4:582 (eth0) | PERSISTENT | 0 |
Это - основной ip 123.123.123.123
Это - правило
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 23 -j DNAT --to-destination 10.78.195.190:22
/# iptables -L -n -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:23 to:10.78.195.190:22
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 10.78.195.0/24 !10.78.195.0/24 /* generated for LXD network lxdbr0 */
/# ifconfig
enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.49 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::b62e:99ff:fec2:6c20 prefixlen 64 scopeid 0x20<link>
ether b4:2e:99:c2:6c:20 txqueuelen 1000 (Ethernet)
RX packets 7110 bytes 963405 (963.4 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3102 bytes 585809 (585.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 138 bytes 11996 (11.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 138 bytes 11996 (11.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lxdbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.78.195.1 netmask 255.255.255.0 broadcast 0.0.0.0
inet6 fd42:4be2:f986:212a::1 prefixlen 64 scopeid 0x0<global>
inet6 fe80::781c:22ff:fecf:a246 prefixlen 64 scopeid 0x20<link>
ether fe:1d:37:ad:03:47 txqueuelen 1000 (Ethernet)
RX packets 93 bytes 9937 (9.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 138 bytes 16179 (16.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vethQLQTSD: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::fc26:27ff:fea1:806a prefixlen 64 scopeid 0x20<link>
ether fe:26:27:a1:80:6a txqueuelen 1000 (Ethernet)
RX packets 30 bytes 2946 (2.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 60 bytes 6593 (6.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vethTE803A: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::fc1d:37ff:fead:347 prefixlen 64 scopeid 0x20<link>
ether fe:1d:37:ad:03:47 txqueuelen 1000 (Ethernet)
RX packets 63 bytes 8293 (8.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 81 bytes 9622 (9.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Если я использую ssh от своей основной системы ssh ubuntu@10.78.195.190
, я вхожу в контейнер. Но от другого ssh ubuntu@123.123.123.123 -p 23
не входят, тайм-аут соединения. Какова моя проблема?Спасибо!
Вместо использования iptables
, Я предлагаю использовать промежуточное устройство LXD. Такое промежуточное устройство передало бы входящие соединения с хостом в указанном IP-адресе к корректному IP-адресу в контейнере.
Для Вашего случая команда для создания промежуточного устройства следующие.
lxc config device add mycontainer myport2222 proxy listen=tcp:0.0.0.0:2222 connect=tcp:127.0.0.1:22
Мы создали
Я замечаю, что Вы используете порт 23. Этот порт обычно используется для протокола Telnet, и вероятно, что некоторые ISPs блокируют его.