私のIPが198.51.100.27で、友人のIPが203.0.113.11であるとします。私たちは皆、標準の消費者ISPルーターを介してインターネットに接続します。
サードパーティのサーバーを使用せずに、どのように互いに数バイトを送信できますか?(そしてルータポート転送設定は不要です)
netcat
orについて聞いたことがありますが、ncat
それを使用して友達に「hello world」を送信する方法と、友達が端末でこのメッセージを表示する方法を知りません。
彼はこれをしなければなりません:
ncat -C 198.51.100.27 80 # this IP is mine
そして私:
ncat -l 203.0.113.11 80 < echo "hello world" # this IP is my friend's IP
?
私も確信していませんnetcat
/ncat
それが正しいツールかどうか。chownat
/も見ましたが、pwnat
「hello world」を送受信する簡単な例では、どのように使用するのかわかりません。
メモ:
SSHやSFTPを介して友達のコンピュータに接続したくありません。私は彼に「hello world」を送ったり、お互いに文字を送りたいです。
集中型サーバーなしで直接P2Pにバイトを送信する方法を理解する以外に、明確な目標はありません。したがって、その人がコンソールで見ることができるように1〜2バイトを送っても問題になりません!
ベストアンサー1
nc -l -p $port
デフォルトでは、1つのホストで実行し、nc $ipaddr $port
適切な値$ipaddr
と特定の値を設定するだけで十分$port
です。ただし、これを行うには、システム間のファイアウォールが接続をブロックしてはいけません。
「どちらも標準のコンシューマーISPルーターの背後にある」と述べました。これは一般に一種のNATを意味する。これは、ルータの背後にあるコンピュータにパブリックIPアドレスがないため、ホストに直接接続することはできませんが、ポートを設定する必要があることを意味します。ルーターの前方。
また、ISPが接続を許可するかどうかに関する質問もあります。さまざまな要因によって、通常のユーザー接続はTCP接続を受信できない可能性があります。
およびリダイレクトの場合は、他のコマンドの出力をパイプにするか、文字列を直接送信する必要がecho
あります。 (これは標準機能ではありません。)echo "message" | nc ...
nc
nc ... <<< "message"
nc
sh