Aufgrund unserer abgelegenen Lage und Budgetbeschränkungen ist meine Internetverbindung auf Mobilfunk 3G/EDGE beschränkt. Der Dienstanbieter hat keine Möglichkeit, mir eine öffentliche IP-Adresse zuzuweisen, daher haben wir es geschafft, dies zu umgehen, indem wir meinen Linux-Server über ein VPN mit einem Tunnel zu einer dedizierten IP-Adresse laufen lassen. Eine zusätzliche (vorübergehende) Komplikation ist, dass es sich um eine virtuelle Maschine, VMWare, handelt, die bald durch eine physische Maschine ersetzt wird.
Derzeit betreibe ich erfolgreich einige GPS-Tracker auf diesem Server. Sie können über die öffentliche IP über tun0, den vom VPN eingerichteten Tunnel, auf den Server zugreifen. Ich kann auch über das Internet auf einige andere IP-Geräte in meinem lokalen Netzwerk zugreifen, die Einrichtung funktioniert also.
Ich muss einen TCP-Socket einrichten, um Daten von einem anderen Gerät abzurufen. Ich führe es aus $ ncat -l -k -p 8993
und $ netstat -l
es zeigt an, dass es tatsächlich auf diesem Port lauscht.
tcp 0 0 *:8993 *:* LISTEN
tcp6 0 0 [::]:8993 [::]:* LISTEN
Das Ergebnis ist, dass ich mich mit Telnet mit diesem Socket verbinden kann, wenn ich über seinen lokalen Adapter eth0 aus meinem lokalen Netzwerk (192.168.0.113) auf den Server zugreife, aber ich kann mich nicht mit der öffentlichen IP (tun0) verbinden. canyouseeme.org zeigt auch an, dass dieser Port geschlossen ist. Ich habe die folgende Zeile in iptables:
iptables -A FORWARD -i tun0 -o eth0 -p tcp --syn --dport 8993 -m conntrack --ctstate NEW -j ACCEPT
Ich habe auch die folgenden Zeilen eingegeben, um zu sehen, ob es zur Lösung beiträgt, aber bisher ohne Erfolg.
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
Ich weiß, dass ich hier etwas Kleines übersehe, da meine anderen Geräte problemlos von der öffentlichen Seite auf den Server zugreifen. Für jede Hilfe wäre ich sehr dankbar.
Das $ ifconfig
zeigt sich:
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)