Unixコマンドのようにピン、ssh、作がソケットをベースにしたプログラムの中で失敗している接続
質問
私から電話がかかる試験機関に製造された機械の不当社のソフトウェアです。の場合を検討した問題を機に、私はすぐに現実の問題はかなり低いレベル:インバウンドネットワークに働きます。基本的なコマンドウのようにピンとsshはがんに関する connect()
呼び出しは失敗"のルートをホスト".
例えば月 この特定の機 このプログラムが失敗の connect()
決のための任意のIPアドレス以外の 127.0.0.1
:
#!/usr/bin/perl -w
use strict;
use Socket;
my ($remote,$port, $iaddr, $paddr, $proto, $line);
$remote = shift || 'localhost';
$port = shift || 2345; # random port
if ($port =~ /\D/) { $port = getservbyname($port, 'tcp') }
die "No port" unless $port;
$iaddr = inet_aton($remote) || die "no host: $remote";
$paddr = sockaddr_in($port, $iaddr);
$proto = getprotobyname('tcp');
socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die "socket: $!";
connect(SOCK, $paddr) || die "connect: $!";
while (defined($line = <SOCK>)) {
print $line;
}
close (SOCK) || die "close: $!";
exit;
他についての提案がこの機れますで走行SUSE-10.2.
解決
私はチェックファイアウォールの設定ができます。でiptables(かごSUSEはiptablesファイアウォールを設定してトラフだけICMP pingパケット.
他のヒント
のファイアウォールがオフになっていますか?
ファイアウォールの対応することは可能でないssh接続できるので、その可能性は低い。うというもの路線("ルート"コマンドのディレクトリ)になっていることを確認しんしているようにデフォルトルート、または奇妙なものなどを実行します。すべてだと思う試験pingおよびsshプログラムと同じ遠方のIPからの提言とは異なり、すべて失敗し、経路問題です。場合にのみプログラムが失敗すると、ほとんどの場からファイアウォールの問題またはプログラムの問題:)
みを指すのconnect()同じホスト:ポートがSSHコマンドです。また、一部のファイアウォールでの異なるルールの異なるユーザーの口座が異なる可能ファイル).そのため、すsshおよび試験アプリのユーザーアカウントとSUIDな設定のためのSSH。
所属していません StackOverflow