Hur ser din kod ut?
Pröva att logga in på servern och kör följande:
nc -l -p 10009
Prova sedan att ansluta utifrån till port 10009.
7 svar · 714 visningar · startad av M@rtin
Håller på och kodar en socket-server i php. Jag binder på mitt "publika" ip 79.136.... och på port 10007. Jag kan telnet'a till det ip't och den porten från samma dator men inte från någon annan dator. Hur löser jag det?
Kör ubuntu men är inte speciellt hemma på hur man confar portar m.m. Har lagt till porten i /etc/services, måste jag starta om nåt efter det?
Hur ser din kod ut?
Pröva att logga in på servern och kör följande:
nc -l -p 10009
Prova sedan att ansluta utifrån till port 10009.
Det funkar inte att ansluta då heller.
Koden ska vara korrekt, körde exempel 1 härifrån: http://www.php.net/manual/en/sockets.examples.php fast med mitt ip och port 10007.
Du kör inte iptables eller ufw? Vad säger /var/log/messages?
/var/log/messages säger ingenting om detta.
Om jag kör iptables -L säger den följande:
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 58.60.106.9 anywhereChain FORWARD (policy ACCEPT)
target prot opt source destinationChain OUTPUT (policy ACCEPT)
target prot opt source destination
ufw vet jag inte ens vad det är så det borde jag inte ha satt. Om det inte är default.
Av någon anledning började det fungera när jag använde det interna ip-numret istället, alltså 192.168... Så problemet är löst :)
Jaha, du sitter bakom en brandvägg, och kör port forwarding. (Gissar jag) Då ska du, som du upptäckte, lyssna på den NAT'ade adressen (192.168....) Routern översätter nämligen port-forwardade anrop så att de går till NAT-adressen - servern "vet" inte ens att anropet från början kom till 79.136.... pga översättningen, så att lyssna på den adressen funkar inte.
Ah då förstår jag, tack för förklaringen :)