Последние 3 часа я пытался перенаправить порт 443 с моего клиента на порт 20443 на моем сервере (CentOS 7 на OpenVZ), поэтому я могу получить к нему доступ на myserverip: 20443. У меня установлен OpenVPN Access, и это конфигурация клиента на нем: http://i.imgur.com/RfMM6Ao.png
Я использую этот скрипт для пересылки.
$ 1 = Порт клиента (здесь 443)
$ 2 = Внешний порт (здесь 20443)
172.28.224.30 = Частный клиент (фиксированный ip)
#!/bin/bash
iptables -A FORWARD -i venet0-p tcp --dport $2 -j ACCEPT
iptables -t nat -A PREROUTING -i venet0 -p tcp -m tcp --dport $2 -j DNAT --to-destination 172.28.224.30:$1
iptables -A FORWARD -i as0t0 -p tcp --dport $1 -j ACCEPT
iptables -t nat -A PREROUTING -i as0t0 -p tcp -m tcp --dport $1 -j DNAT --to-destination 172.28.224.30:$1
iptables -t nat -A PREROUTING -p tcp -d EXTERNAL_IP --dport $2 -j DNAT --to-destination 172.28.224.30:$1
iptables -A FORWARD -p tcp -d 172.28.224.30 --dport $1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -i venet0 -d 172.28.224.30 --dport $2 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d EXTERNAL_IP --dport $2 -j DNAT --to-destination 172.28.224.30:$1
И когда я делаю по SSH "curl 172.28.224.30:443", то получаю результат.
Когда я пытаюсь получить к нему доступ, я получаю ERR_CONNECTION_TIMED_OUT (не CONNECTION_REFUSED). Поэтому я думаю, что порт 20443 принят, но не перенаправляет на 172.28.224.30:443: /
Вот мой ifconfig:
as0t0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 172.27.224.1 netmask 255.255.248.0 destination 172.27.224.1
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 200 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
as0t1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 172.27.232.1 netmask 255.255.248.0 destination 172.27.232.1
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 200 (UNSPEC)
RX packets 12 bytes 1075 (1.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14 bytes 981 (981.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 16436
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 82 bytes 6832 (6.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 82 bytes 6832 (6.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
venet0: flags=211<UP,BROADCAST,POINTOPOINT,RUNNING,NOARP> mtu 1500
inet 127.0.0.1 netmask 255.255.255.255 broadcast 0.0.0.0 destination 127.0.0.1
inet6 2001:41d0:51:1::825 prefixlen 56 scopeid 0x0<global>
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 0 (UNSPEC)
RX packets 2900 bytes 206056 (201.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2637 bytes 364050 (355.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
venet0:0: flags=211<UP,BROADCAST,POINTOPOINT,RUNNING,NOARP> mtu 1500
inet EXTERNAL_IP netmask 255.255.224.0 broadcast EXTERNAL_BROADCAST destination EXTERNAL_IP
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 0 (UNSPEC)
Я что-то сделал не так?
Еще пробовал сделать: socat TCP4-LISTEN: 20443, fork TCP4: 172.28.224.30: 443 Безуспешно :(
Заранее спасибо