Saya mencoba menginstal situs di bawah port alternatif di server, tetapi port mungkin ditutup oleh firewall. Apakah ada cara untuk keluar atau masuk, pada port tertentu, untuk melihat apakah port tersebut terbuka?
Saya mencoba menginstal situs di bawah port alternatif di server, tetapi port mungkin ditutup oleh firewall. Apakah ada cara untuk keluar atau masuk, pada port tertentu, untuk melihat apakah port tersebut terbuka?
Jawaban:
Dengan asumsi bahwa itu adalah port TCP (bukan UDP) yang Anda coba gunakan:
Di server itu sendiri, gunakan netstat -an
untuk memeriksa untuk melihat port mana yang mendengarkan.
Dari luar, cukup gunakan telnet host port
(atau telnet host:port
pada sistem Unix) untuk melihat apakah koneksi ditolak, diterima, atau timeout.
Pada tes terakhir itu, maka secara umum:
Pada Windows 7 atau Windows Vista, opsi default 'telnet' tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dijalankan, atau file batch. Untuk mengatasinya, cukup aktifkan: Klik * Mulai ** → Control Panel → Program → Mengaktifkan atau menonaktifkan Fitur Windows . Dalam daftar, gulir ke bawah dan pilih Telnet Client dan klik OK.
Could not open connection to the host, on port *x*: Connect failed
ditunjukkan?
telnet api-3t.sandbox.paypal.com 443
mendapatkannya? Connecting to api-3t.sandbox.paypal.com...Could not open connection to the host on port 443: Connect failed
Apakah ini karena firewall memblokirnya?
o host port
vs command line terbuka (cmd.exe) dan kemudian ketiktelnet host port
Di Windows Anda bisa menggunakan
netstat -na | find "your_port"
untuk mempersempit hasilnya. Anda juga dapat menyaring untuk LISTENING
, ESTABLISHED
, TCP
dan semacamnya. Pikiran itu case-sensitive sekalipun.
find
tidak bekerja di Windows 10 untuk saya, tetapi netstat -na | findstr "8080"
bekerja
Jika Anda memeriksa dari luar, bukan dari server itu sendiri, dan Anda tidak ingin repot menginstal telnet (karena tidak datang dengan versi Windows terakhir) atau perangkat lunak lain, maka Anda memiliki PowerShell asli:
Test-NetConnection -Port 800 -ComputerName 192.168.0.1 -InformationLevel Detailed
(Sayangnya ini hanya berfungsi dengan PowerShell 4.0 atau lebih baru. Untuk memeriksa versi PowerShell Anda, ketik $PSVersionTable
.)
PS: Catatan, hari ini ada beberapa klaim di twittersphere yang mengisyaratkan bahwa jawaban ini dapat ditingkatkan dengan menyebutkan "Tes-Koneksi" dari PowerShell Core, atau pintasan "tnc". Lihat https://twitter.com/david_obrien/status/1214082339203993600 dan bantu saya mengedit jawaban ini untuk memperbaikinya!
(Jika Anda memiliki PSVersion <4.0, Anda kurang beruntung. Periksa tabel ini:
Meskipun Anda dapat memutakhirkan versi PowerShell Anda dengan menginstal Windows Management Framework 4.0 , itu tidak membantu saya, cmdlet Test-NetConnection masih belum tersedia).
Pada mesin Windows Anda dapat menggunakan PortQry dari Microsoft untuk memeriksa apakah suatu aplikasi sudah mendengarkan pada port tertentu menggunakan perintah berikut:
portqry -n 11.22.33.44 -p tcp -e 80
portqry -n 11.22.33.44 -p udp -e 19132
Saya memang suka itu:
netstat -an | find "8080"
dari telnet
telnet 192.168.100.132 8080
Dan pastikan firewall dimatikan pada mesin itu.
netstat -an | find "8080"
,no such file named "8080"
Jika telnet
tidak tersedia, unduh Putty . Ini adalah klien Telnet, SSH, dll yang jauh lebih unggul dan akan berguna dalam banyak situasi, tidak hanya yang satu ini, terutama jika Anda mengelola server.
Apakah Anda menginginkan alat untuk melakukannya? Ada situs web di http://www.canyouseeme.org/ . Jika tidak, Anda memerlukan server lain untuk menelepon Anda kembali untuk melihat apakah port terbuka ...
Di Windows Server Anda bisa menggunakan
netstat -an | where{$_.Contains("Yourport")}
Utilitas lain yang saya temukan dan bagus dan kecil juga, adalah PortQry Command Line Port Scanner versi 2.0 .
Anda dapat melakukan ping ke server dan port dan ia akan memberi tahu Anda kondisi port tersebut. Ada utilitas baris perintah dan UI untuk itu.