Fedora

哪些服務接受 tcp 連接?

  • June 17, 2017

我最近一直在學習套接字程式,並且剛剛開始學習 tcp/ip 套接字。我的學習資料提供了一個連接到 localhostdaytime服務的範例,通過執行telnet 127.0.0.1 13預期結果應該打開一個 telnet 會話。daytime 13/tcp我的文件中有一個“”條目/etc/services,並且xinetd服務正在執行,但是當我嘗試 telnet 命令時,我立即得到“連接被拒絕”。

:為什麼遠端登錄到白天服務不起作用?

:還有其他可以接受 telnet 連接的 localhost 服務嗎?我嘗試遠端登錄到具有tcp條目的隨機選擇的服務/etc/services,但它們都給出了相同的“連接被拒絕”錯誤。

我的短期目標只是將我的學習資料成功的 telnet 連接複製到 localhost tcp 服務——如果不是inetd,那麼其他任何東西;我只想通過實踐來學習。

>telnet 127.0.0.1 13
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
>telnet 127.0.0.1 49000
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
>telnet 127.0.0.1 9009
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
>uname -a
Linux linuxbox 3.11.10-301.fc20.x86_64 #1 SMP Thu Dec 5 14:01:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

/etc/services不指示實際執行的服務。請參閱/etc/services 的用途。您將需要找到正在執行(或啟動)的服務。您可以通過查看來了解正在收聽的內容netstat -nlt。特定服務會有所不同,但您會看到如下內容:

$ netstat -nlt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN
tcp6       0      0 :::3306                 :::*                    LISTEN
tcp6       0      0 :::111                  :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 ::1:631                 :::*                    LISTEN
tcp6       0      0 ::1:25                  :::*                    LISTEN

所以:

  1. daytime服務可能沒有執行。如果它沒有出現在列表中(你可以從上面的列表中看到我沒有執行它),那麼埠上沒有監聽。如果已安裝,則可能可以啟動該服務。
  2. 根據安裝和活動的內容,還有許多其他潛在服務。在上面的清單中,埠25正在偵聽,即郵件服務。所以我可以通過telnet25埠連接。由於預設沒有安裝telnet,我使用nc連接,但原理是一樣的:

$ nc 127.0.0.1 25 220 centos7.feedthecoder.com ESMTP Postfix HELO me.theworld.com ...

編輯:正如評論中提到的,這當然可能是防火牆問題。一般來說,安裝不會阻塞127.0.0.1,但它總是有可能的。

此外,根據您的發行版,daytime可能未安裝,這將是一個進一步的障礙。如果已安裝,您應該能夠通過正常的服務啟動(例如service start daytime,或發行版等效項)來啟動它。

編輯:事實證明,它daytimexinetd作為內部服務提供。因此,雖然上面有關列出服務的資訊是正確的,但要daytime確保xinetd已安裝,並且文件/etc/xinetd/daytime-streamdisabled設置為no.

引用自:https://unix.stackexchange.com/questions/370920