linux – アドレス:ポートを ping することは可能ですか?

linux networking ping

私はネットワークに詳しくないので、Linuxのpingコマンドに関連して以下のような質問があります

アドレスだけをPINGすることはできますか?例えば

miner@raspberrypi ~ $ ping onofri.org
PING onofri.org (67.222.36.105) 56(84) bytes of data.
64 bytes from onofri.org (67.222.36.105): icmp_req=1 ttl=47 time=202 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=2 ttl=47 time=206 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=3 ttl=47 time=215 ms

また、例えば onofri.org:80 のように、アドレス:ポートを ping することもできますか?

これを試してもうまくいかない

miner@raspberrypi ~ $ ping onofri.org:80
ping: unknown host onofri.org:80

address:portのようなものをpingすることは可能ですか?可能であれば、なぜ私が試したものは動作しませんか?

  225  AndreaNobili  2014-06-16


ベストアンサー

Paping、クロスプラットフォームのTCPポートテスト、ping(ポートping)の機能をエミュレートしたものを使用することができます

(code.google.comが減価償却されているので、Githubも参照してください)

paping -p 80 google.com

24  kxmp  2015-01-21


ポートは、UDPTCPの概念です。Ping メッセージは技術的には ICMP Echo RequestICMP Echo Reply と呼ばれ、これらは ICMP の一部です。ICMP、TCP、UDP は「兄弟」であり、お互いをベースにしているわけではありませんが、IP の上で動作する 3 つの別々のプロトコルです

そのため、pingのようにポートを指定することはできません。できることは、nmapのようなポートスキャナを使うことです

nmap -p 80 onofri.org

他の回答の1つで示唆されているように、telnet onofri.org 80を使用することもできます(ポートが閉じているかフィルタリングされている場合はエラーになります)

315  BenjiWiebe  2014-06-16


私は、Telnetを使用しています

テストしたいポートにtelnetコマンドで接続するだけです。以下のようなメッセージや、サービス自体からのメッセージが表示されたら、そのポートは生きていることになります

Minty16 ~ $ telnet localhost 139
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

接続先のサービスのコマンドシーケンスがわかっていれば、コマンドを入力して(HTTP/FTP GETなど)、ターミナルでレスポンスや出力を観察することができます。これは、HTTP 500 エラーのようにクライアントに送られたエラー情報を表示してくれるので、サービス自体をテストするのに非常に便利です

接続が拒否されたというメッセージが表示された場合は、そのポートは閉じられています

Minty16 ~ $ telnet localhost 5000
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

89  Frank Thomas  2014-06-16


はい、HPingで行います

$ sudo hping -S -p 80 google.com
HPING google.com (p5p1 77.237.27.37): S set, 40 headers + 0 data bytes
len=46 ip=77.237.27.37 ttl=58 id=25706 sport=80 flags=SA seq=0 win=29200 rtt=7.5 ms
len=46 ip=77.237.27.37 ttl=58 id=25707 sport=80 flags=SA seq=1 win=29200 rtt=7.4 ms
len=46 ip=77.237.27.37 ttl=58 id=25708 sport=80 flags=SA seq=2 win=29200 rtt=8.5 ms
len=46 ip=77.237.27.37 ttl=58 id=25709 sport=80 flags=SA seq=3 win=29200 rtt=7.8 ms
^C
--- google.com hping statistic ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 7.4/7.8/8.5 ms

生の IP パケットを作成するには root 権限 (または SELinux の機能) が必要であることに注意してください

49  d33tah  2014-06-17


netcatを使って特定のポートに接続して、接続が得られるかどうかを確認することができます。v フラグはポートが開いているか閉じているかを示すために冗長度を上げます。z フラグは、接続があると netcat を終了させます。その後、接続が確立されたかどうかを確認するために、$?を通した終了コードを使用することができます

$ nc -zv localhost 22
localhost [127.0.0.1] 22 (ssh) open
$ echo $?
0
$ nc -zv localhost 23
localhost [127.0.0.1] 23 (telnet) : Connection refused
$ echo $?
1

さらに、tcp には -T フラグを、ポートを指定するには -P フラグを指定して mtr を使うことができます。これは単なる ICMP の代わりに TCP 上のトレーサルートに似たことをします。しかし、これはやりすぎかもしれません

ため息コメントにコードを入れることができないので、このビットを追加するために編集しなければなりません。Knoppix は netcat のバージョンで何か違うことをしているかもしれませんが、これは Linux Mint から入手したものです

$ date;nc -z -w 1 www.google.com 8000;date
Fri Jun 20 15:55:26 PDT 2014
Fri Jun 20 15:55:27 PDT 2014
$ date;nc -z -w 4 www.google.com 8000;date
Fri Jun 20 15:55:33 PDT 2014
Fri Jun 20 15:55:37 PDT 2014

$ nc -h
[v1.10-40]

49  Falsenames  2014-06-16


npingnmapの一部)を使うこともできます

$ nping -p 80 localhost

Starting Nping 0.6.00 ( http://nmap.org/nping ) at 2014-06-23 11:57 CEST
SENT (0.0015s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (0.0016s) Handshake with localhost:80 (127.0.0.1:80) completed
SENT (1.0027s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (1.0027s) Handshake with localhost:80 (127.0.0.1:80) completed
SENT (2.0038s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (2.0039s) Handshake with localhost:80 (127.0.0.1:80) completed
SENT (3.0050s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (3.0050s) Handshake with localhost:80 (127.0.0.1:80) completed
SENT (4.0061s) Starting TCP Handshake > localhost:80 (127.0.0.1:80)
RECV (4.0062s) Handshake with localhost:80 (127.0.0.1:80) completed

Max rtt: 0.032ms | Min rtt: 0.008ms | Avg rtt: 0.012ms
TCP connection attempts: 5 | Successful connections: 5 | Failed: 0 (0.00%)
Tx time: 4.00575s | Tx bytes/s: 99.86 | Tx pkts/s: 1.25
Rx time: 4.00575s | Rx bytes/s: 49.93 | Rx pkts/s: 1.25
Nping done: 1 IP address pinged in 4.01 seconds

20  nyuszika7h  2014-06-23


Pythonを使ったシェルでは、それほど短くないワンライナーとして、これを行うことができます

$ portping() { python <<<"import socket; socket.setdefaulttimeout(1); socket.socket().connect(('$1', $2))" 2> /dev/null && echo OPEN || echo CLOSED; }
$ portping 8.8.8.8 54
CLOSED
$ portping 8.8.8.8 53
OPEN

9  AXE Labs  2015-12-18


参考までに、Vivek Giteの投稿を共有したいと思いました。https://www.cyberciti.biz/faq/ping-test-a-specific-port-of-machine-ip-address-using-linux-unix/#comment-920398

彼は様々な方法を挙げていますが、そのうちのいくつかはすでにここに投稿されています。しかし、私にとって一番驚いたのは、bash以外の何物でもない

(echo >/dev/tcp/{host}/{port}) &>/dev/null && echo "opened" || echo "closed"
(echo >/dev/udp/{host}/{port}) &>/dev/null && echo "opened" || echo "closed"
(echo >/dev/tcp/www.cyberciti.biz/22) &>/dev/null && echo "Opened 22" || echo "Closed 22"
(echo >/dev/tcp/www.cyberciti.biz/443) &>/dev/null && echo "Opened 443" || echo "Closed 443"

あるいは、超簡単なバージョン: 以下のコマンドパターンの出力を見ているだけ

echo >/dev/{tcp|udp}/{host}/{port}

ランダムなdockerコンテナで作業するときに便利です

8  Jacek  2017-06-06


nmapで簡単です

examples:

#sintaxis
nmap -p [port] hostName
#first is command, after scan ports, type port - port or range ports, and ip or name of website...

## Scan port 80
nmap -p 80 onofri.org

## Scan TCP port 80
nmap -p T:80 onofri.org

## Scan UDP port 53
nmap -p U:53 onofri.org

## Scan two ports ##
nmap -p 80,443 onofri.org

## Scan port ranges ##
nmap -p 80-200 onofri.org

## Combine all options ##
nmap -p U:53,111,137,T:21-25,80,139,8080 onofri.org
nmap -p U:53,111,137,T:21-25,80,139,8080 server1.cyberciti.biz
nmap -v -sU -sT -p U:53,111,137,T:21-25,80,139,8080 onofri.org

## Scan all ports with * wildcard ##
nmap -p "*" 192.168.1.1

## Scan top ports i.e. scan $number most common ports ##
nmap --top-ports 5 onofri.org
nmap --top-ports 10 onofri.org

詳しくはこちらをご覧ください

とコマンドラインに入力します。man nmap

http://www.cyberciti.biz/networking/nmap-command-examples-tutorials/ http://www.tecmint.com/nmap-command-examples/

3  DarckBlezzer  2016-07-25


ここにwatchのツールを追加しました

watch nmap -p22,80 google.com

Every 2,0s: nmap -p22,80 google.com   Mon Jun 15 16:46:33 2015

Starting Nmap 6.40 ( http://nmap.org ) at 2015-06-15 16:46 NOVT
Nmap scan report for google.com (127.0.0.1)
Host is up (0.0012s latency).
rDNS record for 127.0.0.1: google.com
PORT     STATE  SERVICE
22/tcp open   ssh
80/tcp closed http

Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds

2  vp_arth  2015-06-15


通信をテストしようとしているのか、そのノードの80番ポートから応答を得ようとしているのか。PING は、ポートとは何の関係もない ICMP を使って特定のホストとの通信を確立しようとします

代わりにhttp://nmap.org/でポート情報を確認して通信をテストしてみてください

nmap -v -p 80 onofri.org

1  Quijote Shin  2014-06-19


タイトルとURLをコピーしました