telnet olmadan açık portu kontrol et [kapalı]


17

Bir bağlantı noktasının açık ve erişilebilir olduğunu kontrol etmek için Telnet yüklü olmadığında insanlar ne kullanır? Örneğin telnet <destination>, telnet diğer taraftaki sistemle etkileşime giremese bile tekniğini kullanırdım ve orada olduğunu biliyordum.

Windows 2008 ile telnet yüklü değil, bu yüzden biraz kayboldum. Bunun yerine ne kullanabilirim. Ve bir şey Linux veya Solaris'te değilse, lütfen.

Ben farklı sitelerde çalışan bir danışmanım. Bir dizi nedenden dolayı (erişim hakları, kontrol sürelerini değiştirin, eğer yüklersem birisi gelecek yıl kullanırsa, bazı yükümlülüklerimiz var, vb.) Başkasının sunucusuna kuramıyorum. Ama bir USB veya kendi kendine yeten, kurulu olmayan bir araç harika olurdu ...


3
Neden sadece kurmuyorsun?
Chris McKeown

Veya böyle bir şey yükleyin nmap...
etagenklo



Yanıtlar:


25

Powershell'i patron gibi kullan


Temel kod

$ipaddress = "4.2.2.1"
$port = 53
$connection = New-Object System.Net.Sockets.TcpClient($ipaddress, $port)

if ($connection.Connected) {
    Write-Host "Success"
}
else {
    Write-Host "Failed"
}

Bir cmdlet'e dönüştürün

[CmdletBinding()]
Param(
  [Parameter(Mandatory=$True,Position=1)]
   [string]$ip,

   [Parameter(Mandatory=$True,Position=2)]
   [int]$port
)

$connection = New-Object System.Net.Sockets.TcpClient($ip, $port)
if ($connection.Connected) {
    Return "Connection Success"
}
else {
    Return "Connection Failed"
}

Komut dosyası olarak kaydet ve her zaman kullan

Ardından, powershell veya cmd isteminizdeki komutu aşağıdaki gibi kullanırsınız:

PS C:\> telnet.ps1 -ip 8.8.8.8 -port 53

veya

PS C:\> telnet.ps1 8.8.8.8 53


4
Ayrıca şunları da yürütebilirsiniz: New-Object System.Net.Sockets.TcpClient ("IP veya EtkiAlanıAdı", 80) Ve bağlanamıyorsa bir hata veya bağlantı başarılı olursa oluşturulan nesne hakkında bilgi alırsınız.
Tsuushin

1
Soketi kapatmak açısından bu nasıl çalışır? Örneğin, IIS için bir web isteği açıp açmadığımı biliyorum, ancak bağlantıyı kapatma, bir sınıra ulaşacak ve artık test edemiyorum.
Vasili Syrakis

İyi soru. Cevabınızdakiyle aynı şeyi yaptığını hayal ediyorum (siz / biz atmıyoruz veya soketi elle kapatmıyoruz); TcpClient bir noktada çöp toplanmalıdır, yoksa soket bundan önce bir okuma zaman aşımına uğrar. Sadece bir tahmin, test etmedim!
Tsuushin

1
Soketi bir süre açık bırakma konusunda endişelenmek istemiyorsanız bunu yapabilirsiniz: (New-Object System.Net.Sockets.TcpClient ($ ip, $ port)). Kapat Önceki ile aynı anlaşma; Bağlanamıyorsanız hata, ancak bağlandıktan sonra bağlantı noktasını başarıyla kapattıysa bunu yazdırır: void Kapat ()
Tsuushin

41

Telnet olmadan bir TCP bağlantı noktasını test etmenin birkaç farklı yolu vardır.

BASH ( man sayfası )

# cat < /dev/tcp/127.0.0.1/22
SSH-2.0-OpenSSH_5.3
^C

# cat < /dev/tcp/127.0.0.1/23
bash: connect: Connection refused
bash: /dev/tcp/127.0.0.1/23: Connection refused


cURL

# curl -v telnet://127.0.0.1:22
* About to connect() to 127.0.0.1 port 22 (#0)
*   Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 22 (#0)
SSH-2.0-OpenSSH_5.3
^C

# curl -v telnet://127.0.0.1:23
* About to connect() to 127.0.0.1 port 23 (#0)
*   Trying 127.0.0.1... Connection refused
* couldn't connect to host
* Closing connection #0
curl: (7) couldn't connect to host


piton

# python
Python 2.6.6 (r266:84292, Oct 12 2012, 14:23:48)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> clientsocket.connect(('127.0.0.1', 22))
>>> clientsocket.send('\n')
1
>>> clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> clientsocket.connect(('127.0.0.1', 23))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1, in connect
socket.error: [Errno 111] Connection refused


Perl

# perl
use IO::Socket::INET;
$| = 1;
my $socket = new IO::Socket::INET(
  PeerHost => '127.0.0.1',
  PeerPort => '22',
  Proto => 'tcp',
);
die "cannot connect to the server $!\n" unless $socket;
print "connected to the server\n";
^D
connected to the server

+1 Kıvırma yönteminin farkında değildi, çok havalı! :)
blong
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.