Ubuntu
在linux上接受埠/只能使用本地訪問埠,ip超時
我已經
25565
在我的路由器上打開了埠(又名我的世界伺服器埠)。我已經在此伺服器上託管了一個網站:togtja@togtja_server:/$ sudo iptables -nL | grep 80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443 /* 'dapp_Apache%20Full' */
在執行伺服器時,我會仔細檢查埠是否正在被監聽:
/**Some other ports as well such as 22 from ssh**/ apache2 1926 root 4u IPv6 29136 0t0 TCP *:80 (LISTEN) apache2 1926 root 6u IPv6 29140 0t0 TCP *:443 (LISTEN) apache2 1927 www-data 4u IPv6 29136 0t0 TCP *:80 (LISTEN) apache2 1927 www-data 6u IPv6 29140 0t0 TCP *:443 (LISTEN) apache2 1928 www-data 4u IPv6 29136 0t0 TCP *:80 (LISTEN) apache2 1928 www-data 6u IPv6 29140 0t0 TCP *:443 (LISTEN) java 3159 togtja 52u IPv6 41266 0t0 TCP *:25565 (LISTEN)
但是,當我執行
telnet
或nc
在埠上時:togtja@togtja_server:/$ nc -z -v -w5 my_ip 25565 nc: connect to my_ip port 25565 (tcp) timed out: Operation now in progress
如果我嘗試其他應該關閉的埠,我會被直接拒絕
togtja@togtja_server:/$ nc -z -v -w5 my_ip 1337 nc: connect to my_ip port 1337 (tcp) failed: Connection refused
但是,如果我嘗試 localhost 我會通過
togtja@togtja_server:/$ nc -z -v -w5 localhost 25565 Connection to localhost 25565 port [tcp/*] succeeded!
並且它拒絕本地未打開的埠,正如預期的那樣:
togtja@togtja_server:/$ nc -z -v -w5 localhost 1337 nc: connect to localhost port 1337 (tcp) failed: Connection refused
我相信我在設置 Web 伺服器時*可能已經鎖定了所有埠,除了那些明確接受的埠,但不知道這些設置在哪裡,或者這是否是問題所在。*注意:我正在執行 ubuntu 18.04 伺服器(沒有 GUI)。
編輯: 為了澄清,我還在
nc my_ip
不同網路上的電腦上執行命令,以驗證它不僅可以在本地伺服器上工作
問題是我設法將 IP 表的預設 Pollicy 設置為
DROP
. 所以打電話時sudo iptables -L
,我得到了:Chain INPUT (policy DROP) target prot opt source destination Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
所以我為我的埠執行添加了一個例外:
sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT
INPUT
,可能是FORWARD
或OUTPUT
取決於你想要為什麼制定規則。要將整個錶鍊更改為一個策略,您可以這樣做:
sudo iptables -P INPUT ACCEPT
,這將使 INPUT 的預設策略被接受