Из-за нашего очень удаленного местоположения и бюджетных ограничений мое интернет-соединение ограничено сотовой связью 3G / EDGE. У поставщика услуг нет возможности предоставить мне публичный IP, поэтому нам удалось обойти это, запустив мой сервер Linux через VPN с туннелем к выделенному IP. Дополнительной (временной) сложностью является то, что это виртуальная машина VMWare, которая вскоре будет заменена физической машиной.
В настоящее время я успешно запускаю пару GPS-трекеров на этом сервере, они могут получить доступ к серверу через публичный IP через tun0, туннель, установленный VPN. Я также могу получить доступ к паре других IP-устройств, расположенных в моей локальной сети, из Интернета, так что настройка работает.
Мне нужно настроить TCP-сокет, чтобы захватить данные, поступающие с другого устройства. Я запускаю $ ncat -l -k -p 8993
и $ netstat -l
вижу, что он действительно прослушивает этот порт.
tcp 0 0 *:8993 *:* LISTEN
tcp6 0 0 [::]:8993 [::]:* LISTEN
В результате я могу подключиться к этому сокету с помощью telnet, когда я получаю доступ к серверу через его локальный адаптер eth0 из моей локальной сети (192.168.0.113), но я не могу подключиться к нему, используя публичный IP (tun0). canyouseeme.org также показывает, что этот порт закрыт. У меня есть следующая строка в iptables:
iptables -A FORWARD -i tun0 -o eth0 -p tcp --syn --dport 8993 -m conntrack --ctstate NEW -j ACCEPT
Я также добавил следующие строки, чтобы посмотреть, поможет ли это решить что-нибудь, но пока безрезультатно.
iptables -A FORWARD -i tun0 -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Я знаю, что я упускаю что-то маленькое, так как мои другие устройства получают доступ к серверу с публичной стороны без проблем. Любая помощь будет высоко оценена.
Вот что $ ifconfig
показывает:
eth0 Link encap:Ethernet HWaddr 00:0c:29:45:c6:83
inet addr:192.168.0.113 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe45:c683/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11019 errors:0 dropped:0 overruns:0 frame:0
TX packets:6309 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5882474 (5.6 MiB) TX bytes:1197497 (1.1 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:120 errors:0 dropped:0 overruns:0 frame:0
TX packets:120 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8069 (7.8 KiB) TX bytes:8069 (7.8 KiB)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.212.0.6 P-t-P:10.212.0.5 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:4206 errors:0 dropped:0 overruns:0 frame:0
TX packets:3948 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3528488 (3.3 MiB) TX bytes:392464 (383.2 KiB)