これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド procan です。
プログラム:
NAME
socat-多目的リレー(SOcket CAT)
SYNOPSIS
socat [オプション]
ソカット-V
socat -h [h [h]] | -?[?[?]]
等々
プロカン
DESCRIPTION
ソキャット XNUMXつの双方向バイトストリームを確立するコマンドラインベースのユーティリティであり、
それらの間でデータを転送します。 ストリームは大量のセットから構築できるため
さまざまなタイプのデータシンクとソース(アドレスタイプを参照)、およびアドレスが多いため
オプションはストリームに適用でき、socatはさまざまな目的に使用できます。
等々 アクティブなファイル記述子に関する情報をstdoutに出力するユーティリティです。 これ
デバッグ用に作成されています ソキャット、しかし他の目的にも役立つかもしれません。 使用
-hオプションで詳細情報を検索できます。
プロカン プロセスパラメータに関する情報をstdoutに出力するユーティリティです。 それは持っています
一部のUNIXプロセスプロパティをよりよく理解し、デバッグするために作成されました ソキャット,
しかし、他の目的にも役立つかもしれません。
のライフサイクル ソキャット インスタンスは通常、XNUMXつのフェーズで構成されます。
INIT フェーズでは、コマンドラインオプションが解析され、ログが初期化されます。
間に 開いた 段階、 ソキャット 最初のアドレスを開き、その後XNUMX番目のアドレスを開きます。
これらの手順は通常ブロックされています。 したがって、特に靴下のような複雑な住所タイプの場合、
次のステップを実行する前に、接続要求または認証ダイアログを完了する必要があります。
開始しました。
転送 段階、 ソキャット を介して両方のストリームの読み取りおよび書き込みファイル記述子を監視します
select()、および、データが片側で利用可能な場合 と 反対側に書くことができます、
socatはそれを読み取り、必要に応じて改行文字変換を実行し、データをに書き込みます
他のストリームの書き込みファイル記述子は、次のデータを待機し続けます
両方向。
ストリームのXNUMXつが効果的にEOFに達すると、 閉鎖 フェーズが始まります。 ソキャット 転送
他のストリームへのEOF条件、つまり、書き込みストリームのみをシャットダウンしようとします。
正常に終了する機会を与えます。 定義された時間 ソキャット 転送を続けます
反対方向のデータですが、残りのすべてのチャネルを閉じて終了します。
OPTIONS
ソキャット プログラムの動作を変更するいくつかのコマンドラインオプションを提供します。 彼ら
アドレスの一部として使用されるいわゆるアドレスオプションとは何の関係もありません
仕様。
-V バージョンと利用可能な機能情報をstdoutに印刷し、終了します。
-h | -?
コマンドラインオプションと使用可能なアドレスを説明するヘルプテキストをstdoutに印刷します
タイプし、終了します。
-ああ | -??
-hのように、さらに利用可能なすべてのアドレスオプションの短縮名のリスト。 いくつかの
オプションはプラットフォームに依存するため、この出力は
特定の実装。
-ああ | - ???
-hhのように、さらに使用可能なすべてのアドレスオプション名のリスト。
-d このオプションがないと、致命的なメッセージとエラーメッセージのみが生成されます。 これを適用する
オプションは、警告メッセージも出力します。 詳細については、診断を参照してください。
-d -d 致命的、エラー、警告、および通知メッセージを出力します。
-d -d -d
致命的、エラー、警告、通知、および情報メッセージを出力します。
-d -d -d -d
致命的、エラー、警告、通知、情報、およびデバッグメッセージを出力します。
-D 転送フェーズを開始する前に、ファイル記述子に関する情報をログに記録します。
-ly [ ]
stderrではなくsyslogにメッセージを書き込みます。 -dオプションで定義された重大度。
オプション付き、syslogタイプを選択できます。デフォルトは「デーモン」です。
サードパーティのライブラリは、このオプションに従わない場合があります。
-lf
にメッセージを書き込みますstderrの代わりに[ファイル名]。 一部のサードパーティ
ライブラリ、特にlibwrapは、このオプションに従わない場合があります。
-ls stderrにメッセージを書き込みます(これがデフォルトです)。 一部のサードパーティライブラリは
このオプションに従わないでください。特に、libwrapはsyslogにのみログを記録するように見えます。
-lp
エラーメッセージに出力され、構築に使用されるプログラム名を上書きします
環境変数名。
-lu エラーメッセージのタイムスタンプをマイクロ秒の解像度に拡張します。 動作しません
syslogにログを記録するとき。
-lm [ ]
混合ログモード。 起動時にメッセージがstderrに出力されます。 いつ ソキャット 開始
転送フェーズループまたはデーモンモード(つまり、すべてのストリームを開いた後、前
データ転送を開始するか、フォークオプション付きのリスニングソケットを使用して、
最初に呼び出しを受け入れる)、ログをsyslogに切り替えます。 オプション付き、
syslogタイプを選択できます。デフォルトは「デーモン」です。
-lh ログメッセージにホスト名を追加します。 環境変数HOSTNAMEまたはの値を使用します
HOSTNAMEが設定されていない場合、uname()で取得される値。
-v 転送されたデータをターゲットストリームだけでなく、stderrにも書き込みます。
出力形式は、読みやすくするためにいくつかの変換が行われたテキストであり、接頭辞として
">"または "<"は流れの方向を示します。
-x 転送されたデータをターゲットストリームだけでなく、stderrにも書き込みます。
出力形式はXNUMX進数で、接頭辞 ">"または "<"がフローを示します。
方向。 -vと組み合わせることができます。
-b
データ転送ブロックを設定します[size_t]。 せいぜいバイトが転送されます
ステップごと。 デフォルトは8192バイトです。
-s デフォルトでは、 ソキャット プロセスを妨げるためにエラーが発生したときに終了します
一部のオプションを適用できなかったときに実行されます。 このオプションを使用すると、 ソキャット ずさんです
エラーが発生し、続行しようとします。 このオプションを使用しても、socatはで終了します
致命的であり、セキュリティチェックが失敗した場合は接続の試行を中止します。
-t
一方のチャネルがEOFに達すると、もう一方のチャネルの書き込み部分がシャットダウンされます。
その後、 ソキャット 待つ[timeval]終了する前の秒。 デフォルトは0.5です
秒。 このタイムアウトは、書き込みと読み取りの部分が可能なアドレスにのみ適用されます
独立して閉じました。 タイムアウト間隔中に読み取り部分がEOFを与える場合、
socatは、タイムアウトを待たずに終了します。
-T
合計非アクティブタイムアウト:socatがすでに転送ループにあり、何もない場合
のために起こった[timeval]秒(データが到着せず、割り込みもありません
発生しました...)その後、終了します。 できないUDPのようなプロトコルで役立ちます
EOFを転送します。
-u 単方向モードを使用します。 最初のアドレスは読み取りにのみ使用され、
XNUMX番目のアドレスは書き込みにのみ使用されます(例)。
-U 逆方向に単方向モードを使用します。 最初のアドレスは次の目的でのみ使用されます
書き込み、およびXNUMX番目のアドレスは読み取りにのみ使用されます。
-g アドレスオプションの解析中に、オプションがで有用であると見なされるかどうかをチェックしないでください
指定されたアドレス環境。 たとえば、アプライアンスのを強制したい場合に使用します
シリアルデバイスへのソケットオプション。
-L
ロックファイルが存在する場合、エラーで終了します。 ロックファイルが存在しない場合は、それを作成して
続行し、終了時にロックファイルのリンクを解除します。
-W
ロックファイルが存在する場合は、消えるまで待ちます。 ロックファイルが存在しない場合、
それを作成して続行し、終了時にロックファイルのリンクを解除します。
-4 アドレスが暗黙的または明示的に指定しない場合は、IPバージョン4を使用してください
バージョン; これがデフォルトです。
-6 アドレスが暗黙的または明示的に指定しない場合は、IPバージョン6を使用してください
バージョン。
ADDRESS 規格
アドレスコマンドライン引数を使用して、ユーザーは ソキャット 指示と
バイトストリームを確立するために必要な情報。
アドレス指定は通常、XNUMX個以上のアドレスタイプキーワードで構成されます。
キーワードおよび相互に「:」で区切られた必須のアドレスパラメータ、および
'、'で区切られたXNUMX個以上のアドレスオプション。
キーワードは、アドレスタイプ(TCP4、OPEN、EXECなど)を指定します。 そこにいくつかのキーワードについて
同義語が存在します(STDIOの場合は「-」、TCP4の場合はTCP)。 キーワードでは大文字と小文字は区別されません。 いくつかのために
特別なアドレスタイプの場合、キーワードは省略できます。
番号はFD(rawファイル記述子)アドレスと見なされます。 '/'が前に見つかった場合
最初の ':'または '、'、GOPEN(汎用ファイルオープン)が想定されます。
必要なアドレスパラメータの数とタイプは、アドレスタイプによって異なります。 例:TCP4
サーバーの指定(名前またはアドレス)とポートの指定(番号または
サービス名)。
各アドレスには、XNUMX個以上のアドレスオプションを指定できます。 それらはのアドレスに影響を与えます
いくつかの方法。 オプションは、オプションキーワードまたはオプションキーワードと値で構成されます。
'='で区切られます。 オプションキーワードでは大文字と小文字は区別されません。 オプションをフィルタリングするため
アドレスタイプで役立ちます。各オプションはXNUMXつのオプショングループのメンバーです。 それぞれについて
アドレスタイプ許可されるオプショングループのセットがあります。 いずれかに属するオプションのみ
これらのアドレスグループを使用できます(オプション-gを除く)。
上記のスキーマに従ったアドレス指定も呼び出されます 住所
仕様。 XNUMXつの単一アドレスを「!!」と組み合わせることができますを形成する デュアル type
XNUMXつのチャネルのアドレス。 ここで、最初のアドレスはによって使用されます ソキャット データを読み取るため、および
データを書き込むためのXNUMX番目のアドレス。 オプションをXNUMX回だけ指定する方法はありません
両方の単一アドレスに適用されます。
通常、アドレスは読み取り/書き込みモードで開かれます。 アドレスがデュアルの一部である場合
アドレス指定、またはオプション-uまたは-Uが使用されている場合、アドレスは次の目的でのみ使用される可能性があります
読み取りまたは書き込み用。 一部のアドレスタイプでは、これを考慮することが重要です。
socatバージョン1.5.0以降では、字句解析は引用符と
括弧は意味のあるものであり、特殊文字のエスケープを可能にします。 のいずれか
文字({['が見つかり、対応する終了文字-)}]'-が検索されます
にとって; ネストすることもできます。 これらの構成内で、特殊文字と
文字列:、!! 特別に取り扱われていません。 これらの文字と文字列はすべてエスケープできます
\または ""内
ADDRESS TYPES
このセクションでは、使用可能なアドレスタイプとそのキーワード、パラメータ、および
セマンティクス。
作成:
開くcreat()を使用して、書き込みにファイル記述子を使用します。 この
creatで開いたファイルはできないため、アドレスタイプには書き込み専用コンテキストが必要です
から読む。
O_LARGEFILEのようなフラグは適用できません。 それらが必要な場合は、オプション付きのOPENを使用してください
作成、作成。
有効な既存のパスまたは存在しないパスである必要があります。 もしも名前付きです
パイプ、creat()がブロックする可能性があります。 もしもソケットを参照します。これはエラーです。
オプショングループ:FD、REG、NAMED
便利なオプション:モード、ユーザー、グループ、unlink-early、unlink-late、append
参照:OPEN、GOPEN
EXEC:
親プロセスとの通信を確立するサブプロセスをフォークし、
execvp()を使用して指定されたプログラムを呼び出します。 簡単なコマンドです
引数はシングルスペースで区切られます。 プログラム名に「/」が含まれている場合、
最後の「/」の後の部分はARGV [0]と見なされます。 プログラム名が親戚の場合
パス、$ PATHを介してプログラムを検索するためのexecvp()セマンティクスが適用されます。 後
プログラムの開始が成功しました。 ソキャット プロセスのstdinにデータを書き込み、から読み取ります
デフォルトでsocketpair()によって生成されたUNIXドメインソケットを使用するstdout。
(例)
オプショングループ:FD、SOCKET、EXEC、FORK、TERMIOS
便利なオプション:path、fdin、fdout、chroot、su、su-d、nofork、pty、stderr、ctty、
setsid、pipes、login、sigint、sigquit
参照:システム
FD:
ファイル記述子を使用します。 有効なUN * Xファイルとしてすでに存在している必要があります
ディスクリプタ。
オプショングループ:FD(TERMIOS、REG、SOCKET)
参照:STDIO、STDIN、STDOUT、STDERR
GOPEN:
(汎用オープン)このアドレスタイプは、以下を除くすべてのファイルシステムエントリを処理しようとします。
便利なディレクトリ。 相対パスまたは絶対パスの場合があります。 すでに
存在する場合、そのタイプがチェックされます。 UNIXドメインソケットの場合、 ソキャット 接続します。 もしも
接続に失敗し、 ソキャット データグラムソケットを想定し、sendto()呼び出しを使用します。 の場合
エントリはソケットではありません、 ソキャット O_APPENDフラグを適用して開きます。 そうでない場合
存在する場合、通常のファイルとしてフラグO_CREATで開かれます(例)。
オプショングループ:FD、REG、SOCKET、NAMED、OPEN
参照:OPEN、CREATE、UNIX-CONNECT
IP-SENDTO: :
生のIPソケットを開きます。 ホストの仕様またはオプションpfに応じて、IPプロトコル
バージョン4または6が使用されます。 それは使用していますにパケットを送信するには[IPアドレス]
ホストからパケットを受信し、他のホストからのパケットを無視します。 プロトコル255
データの一部であるIPヘッダーを持つrawソケットを使用します。
オプショングループ:FD、SOCKET、IP4、IP6
便利なオプション:pf、ttl
参照:IP4-SENDTO、IP6-SENDTO、IP-RECVFROM、IP-RECV、UDP-SENDTO、UNIX-SENDTO
インターフェース:
以下を含む生のパケットを使用して、インターフェイスに接続されたネットワークと通信します。
リンクレベルのデータ。 ネットワークインターフェイスの名前です。 現在のみ
Linuxで利用できます。 オプショングループ:FD、SOCKET
便利なオプション:pf、タイプ
参照:ip-recv
IP4-SENDTO: :
IP-SENDTOと同様ですが、常にIPv4を使用します。
オプショングループ:FD、SOCKET、IP4
IP6-SENDTO: :
IP-SENDTOと同様ですが、常にIPv6を使用します。
オプショングループ:FD、SOCKET、IP6
IPデータグラム: :
特にブロードキャストである可能性がある指定されたアドレスに送信データを送信します
またはマルチキャストアドレス。 ローカルソケットに到着するパケットは、
送信元アドレスは、RANGEまたはTCPWRAPオプションと一致します。 このアドレスタイプは、たとえば
対称または非対称のブロードキャストまたはマルチキャストを実装するために使用されます
コミュニケーション
オプショングループ:FD、SOCKET、IP4、IP6、RANGE
便利なオプション:bind、range、tcpwrap、broadcast、ip-multicast-loop、
ip-multicast-ttl、ip-multicast-if、ip-add-membership、ttl、tos、pf
参照:IP4-DATAGRAM、IP6-DATAGRAM、IP-SENDTO、IP-RECVFROM、IP-RECV、UDP-DATAGRAM
IP4-データグラム: :
IP-DATAGRAMと同様ですが、常にIPv4を使用します。 (例)
オプショングループ:FD、SOCKET、IP4、RANGE
IP6-データグラム: :
IP-DATAGRAMと同様ですが、常にIPv6を使用します。 IPv6は認識しないことに注意してください
ブロードキャスト。
オプショングループ:FD、SOCKET、IP6、RANGE
IP-RECVFROM:
の生のIPソケットを開きます。 オプションpfに応じて、IPプロトコルバージョン4
または6が使用されます。 不特定のピアからXNUMXつのパケットを受信し、XNUMXつまたは
そのピアへのより多くの応答パケット。 このモードはフォークで特に便利です
任意のピアから到着する各パケットが独自に処理されるオプション
サブプロセス。 これにより、次のような一般的なUDPベースのサーバーと同様の動作が可能になります。
ntpdまたはnamed。
送信者の場合、応答パケットが着信トラフィックとしてフェッチされる可能性があることに注意してください
と受信者のIPアドレスは同じです。
ソケットを区別します。
このアドレスは、IP-SENDTOアドレスピアでうまく機能します(上記を参照)。 プロトコル255
データの一部であるIPヘッダーを持つrawソケットを使用します。
オプショングループ:FD、SOCKET、IP4、IP6、CHILD、RANGE
便利なオプション:pf、fork、range、ttl、broadcast
参照:IP4-RECVFROM、IP6-RECVFROM、IP-SENDTO、IP-RECV、UDP-RECVFROM、
UNIX-RECVFROM
IP4-RECVFROM:
IP-RECVFROMと同様ですが、常にIPv4を使用します。
オプショングループ:FD、SOCKET、IP4、CHILD、RANGE
IP6-RECVFROM:
IP-RECVFROMと同様ですが、常にIPv6を使用します。
オプショングループ:FD、SOCKET、IP6、CHILD、RANGE
IP-RECV:
の生のIPソケットを開きます。 オプションpfに応じて、IPプロトコルバージョン4
または6が使用されます。 複数の不特定のピアからパケットを受信し、
データ。 返信はできません。 たとえば、socatIP-SENDTOでアドレス指定できます。
アドレスピア。 プロトコル255は、IPヘッダーが一部であるrawソケットを使用します
データ。
オプショングループ:FD、SOCKET、IP4、IP6、RANGE
便利なオプション:pf、range
参照:IP4-RECV、IP6-RECV、IP-SENDTO、IP-RECVFROM、UDP-RECV、UNIX-RECV
IP4-RECV:
IP-RECVと同様ですが、常にIPv4を使用します。
オプショングループ:FD、SOCKET、IP4、RANGE
IP6-RECV:
IP-RECVと同様ですが、常にIPv6を使用します。
オプショングループ:FD、SOCKET、IP6、RANGE
開いた:
開くopen()システムコールを使用します(例)。 この操作は失敗します
UNIXドメインソケット。
注:このアドレスタイプは、双方向モードではほとんど役に立ちません。
オプショングループ:FD、REG、NAMED、OPEN
便利なオプション:creat、excl、noatime、nofollow、append、rdonly、wronly、lock、
readbytes、ignoreeof
参照:CREATE、GOPEN、UNIX-CONNECT
OPENSSL: :
へのSSL接続を確立しようとします[TCPサービス]オン[IPアドレス]
アドレス指定、名前解決、またはに応じてTCP / IPバージョン4または6を使用する
オプションpf。
注:バージョン1.7.2.4までは、サーバー証明書の有効性のみがチェックされていました
システム証明書ストアまたはcafileまたはcapathに対してですが、との一致はありません
サーバーの名前またはそのIPアドレス。 バージョン1.7.3.0以降、socatはピアをチェックします
と一致するための証明書パラメータまたはの値
openssl-commonnameオプション。 Socatはそれを証明書と照合しようとします
サブジェクトcommonName、および証明書拡張subjectAltNameDNS名。
証明書のワイルドカードがサポートされています。
オプショングループ:FD、SOCKET、IP4、IP6、TCP、OPENSSL、RETRY
便利なオプション:暗号、メソッド、検証、commonname cafile、capath、certificate、
キー、圧縮、バインド、pf、接続タイムアウト、ソースポート、再試行
参照:OPENSSL-LISTEN、TCP
OPENSSL-聞く:
TCPでリッスンします[TCPサービス]。 IPバージョンは4またはで指定されたものです
pf。 接続が受け入れられると、このアドレスはSSLサーバーとして動作します。
注:このアドレスで証明書オプションを使用することをお勧めします。
注:クライアント証明書は、cafileまたはcapathに対してのみ有効性がチェックされます。
ただし、クライアントの名前やIPアドレスとの一致はありません。
オプショングループ:FD、SOCKET、IP4、IP6、TCP、LISTEN、OPENSSL、CHILD、RANGE、RETRY
便利なオプション:pf、cipher、method、verify、commonname cafile、capath、certificate、
キー、圧縮、フォーク、バインド、範囲、tcpwrap、su、reuseaddr、再試行
参照:OPENSSL、TCP-LISTEN
パイプ:
もしもすでに存在し、開かれています。 存在しない場合、名前付きパイプは
作成して開きました。 socatバージョン1.4.3以降、名前付きパイプは削除されます
アドレスが閉じられたとき(ただし、オプションunlink-closeを参照)
注:パイプが読み取りと書き込みの両方に使用される場合、それはエコーサービスとして機能します。
注:パイプが読み取りと書き込みの両方に使用され、socatが書き込みを試みる場合
パイプがバッファリングできるバイト数(Linux 2.4:2048バイト)よりも多い場合、socatがブロックする可能性があります。
socatオプションの使用を検討してください。例:-b 2048
オプショングループ:FD、NAMED、OPEN
便利なオプション:rdonly、nonblock、group、user、mode、unlink-early
参照:無名パイプ
パイプ 名前のないパイプを作成し、それを読み取りと書き込みに使用します。 エコーとして機能し、
書き込まれたものはすべて、読み取りデータとしてすぐに表示されるためです。
注:socatがパイプがキューに入れることができるよりも多くのバイトを書き込もうとした場合(Linux 2.4:2048
バイト)、socatがブロックする可能性があります。 たとえば、オプション-b2048を使用することを検討してください
オプショングループ:FD
参照:名前付きパイプ
プロキシー: : :
TCP / IPバージョン8080または4を使用して、ポート6でHTTPプロキシサーバーに接続します
アドレス指定、名前解決、またはオプションpfに応じて、
hostname:portのCONNECT要求。 プロキシがアクセスを許可し、成功した場合
ターゲットに接続すると、socatとターゲット間のデータ転送を開始できます。 ノート
トラフィックはHTTPである必要はありませんが、任意のプロトコルにすることができます。
オプショングループ:FD、SOCKET、IP4、IP6、TCP、HTTP、RETRY
便利なオプション:proxyport、ignorecr、proxyauth、resolve、crnl、bind、
接続-タイムアウト、mss、ソースポート、再試行
参照:SOCKS、TCP
PTY 疑似端末(pty)を生成し、そのマスター側を使用します。 別のプロセスがあります
シリアル回線や端末のように使用して、ptyのスレーブ側を開きます。 (例)。 もしも
ptmxメカニズムとopenptyメカニズムの両方が使用可能であり、ptmxが使用されます(POSIX)。
オプショングループ:FD、NAMED、PTY、TERMIOS
便利なオプション:link、openpty、wait-slave、mode、user、group
参照:UNIX-LISTEN、PIPE、EXEC、SYSTEM
読み込まれた行
stdioでGNUreadlineと履歴を使用して、入力行の編集と再利用を可能にします
(例)。
ライセンスの制限により、Debianではreadline機能が無効になっています。 見る
バグ。
代わりにSTDIOを使用できます。
SCTP-CONNECT: :
指定されたへのSCTPストリーム接続を確立します[IPアドレス]と
[TCPサービス]アドレスに応じてTCP / IPバージョン4または6を使用
仕様、名前解決、またはオプションpf。
オプショングループ:FD、SOCKET、IP4、IP6、SCTP、CHILD、RETRY
便利なオプション:bind、pf、connect-timeout、tos、mtudiscover、sctp-maxseg、
sctp-nodelay、nonblock、sourceport、retry、readbytes
参照:SCTP4-CONNECT、SCTP6-CONNECT、SCTP-LISTEN、TCP-CONNECT
SCTP4-CONNECT: :
SCTP-CONNECTと同様ですが、IPv4プロトコルのみをサポートします。
オプショングループ:FD、SOCKET、IP4、SCTP、CHILD、RETRY
SCTP6-CONNECT: :
SCTP-CONNECTと同様ですが、IPv6プロトコルのみをサポートします。
オプショングループ:FD、SOCKET、IP6、SCTP、CHILD、RETRY
SCTP-聞く:
聞く[TCPサービス]そしてTCP / IP接続を受け入れます。 IPバージョンは
4またはアドレスオプションpf、socatオプション(-4、-6)、または
環境変数SOCAT_DEFAULT_LISTEN_IP。 このアドレスを開くことに注意してください
通常、クライアントが接続するまでブロックします。
オプショングループ:FD、SOCKET、LISTEN、CHILD、RANGE、IP4、IP6、SCTP、RETRY
便利なオプション:crnl、fork、bind、range、tcpwrap、pf、max-children、backlog、
sctp-maxseg、sctp-nodelay、su、reuseaddr、retry、cool-write
参照:SCTP4-LISTEN、SCTP6-LISTEN、TCP-LISTEN、SCTP-CONNECT
SCTP4-聞く:
SCTP-LISTENと同様ですが、IPv4プロトコルのみをサポートします。
オプショングループ:FD、SOCKET、LISTEN、CHILD、RANGE、IP4、SCTP、RETRY
SCTP6-聞く:
SCTP-LISTENと同様ですが、IPv6プロトコルのみをサポートします。
オプショングループ:FD、SOCKET、LISTEN、CHILD、RANGE、IP6、SCTP、RETRY
ソケット接続: : :
最初とXNUMX番目に指定されたソケットパラメータを使用してストリームソケットを作成し、
SOCK_STREAM(man socket \(2)を参照)およびリモートアドレスに接続します。 二つ
ソケットパラメータはint番号で指定する必要があります。 OSに相談する
適切な値を見つけるためのドキュメントとインクルードファイル。 リモートアドレス
sa_familyおよび(BSD)を含まないsockaddr構造のデータ表現である必要があります
sa_lenコンポーネント。
指定されたグループのオプションを超えて、使用することもできることに注意してください
socatオプション-gを適用する場合の高レベルプロトコルのオプション。
オプショングループ:FD、SOCKET、CHILD、RETRY
便利なオプション:bind、setsockopt-int、setsockopt-bin、setsockopt-string
参照:TCP、UDP-CONNECT、UNIX-CONNECT、SOCKET-LISTEN、SOCKET-SENDTO
ソケット-データグラム: : : :
指定された最初のXNUMXつのソケットパラメータを使用してデータグラムソケットを作成します(manを参照)
socket \(2))そして送信データをリモートアドレスに送信します。 XNUMXつのソケット
パラメータは整数で指定する必要があります。 OSのドキュメントを参照して
適切な値を見つけるためにファイルを含めます。 リモートアドレスはデータである必要があります
sa_familyおよび(BSD)sa_lenを使用しないsockaddr構造体の表現
コンポーネント。
指定されたグループのオプションを超えて、使用することもできることに注意してください
socatオプション-gを適用する場合の高レベルプロトコルのオプション。
オプショングループ:FD、SOCKET、RANGE
便利なオプション:bind、range、setsockopt-int、setsockopt-bin、setsockopt-string
参照:UDP-DATAGRAM、IP-DATAGRAM、SOCKET-SENDTO、SOCKET-RECV、SOCKET-RECVFROM
ソケット-聞く: : :
最初とXNUMX番目に指定されたソケットパラメータを使用してストリームソケットを作成し、
SOCK_STREAM(man socket \(2)を参照)およびで着信接続を待機します
ローカルアドレス。 XNUMXつのソケットパラメータはint番号で指定する必要があります。
OSのドキュメントを参照し、ファイルを含めて適切な値を見つけてください。 The
local-addressは、sockaddr構造体のデータ表現である必要があります。
sa_familyおよび(BSD)sa_lenコンポーネント。
指定されたグループのオプションを超えて、使用することもできることに注意してください
socatオプション-gを適用する場合の高レベルプロトコルのオプション。
オプショングループ:FD、SOCKET、LISTEN、RANGE、CHILD、RETRY
便利なオプション:setsockopt-int、setsockopt-bin、setsockopt-string
参照:TCP、UDP-CONNECT、UNIX-CONNECT、SOCKET-LISTEN、SOCKET-SENDTO、
ソケット-SENDTO
ソケット-RECV: : : :
指定された2つのソケットパラメータ(man socket \(XNUMX)を参照)を使用してソケットを作成し、
にバインドします。 到着データを受信します。 XNUMXつのパラメータは
int番号で指定します。 OSのドキュメントを参照し、次のファイルを含めます。
適切な値を見つけます。 ローカルアドレスは、のデータ表現である必要があります
sa_familyおよび(BSD)sa_lenコンポーネントのないsockaddr構造。
オプショングループ:FD、SOCKET、RANGE
便利なオプション:range、setsockopt-int、setsockopt-bin、setsockopt-string
参照:UDP-RECV、IP-RECV、UNIX-RECV、SOCKET-DATAGRAM、SOCKET-SENDTO、
ソケット-RECVFROM
ソケット-RECVFROM: : : :
指定された2つのソケットパラメータ(man socket \(XNUMX)を参照)を使用してソケットを作成し、
にバインドします。 到着データを受信し、返信を
送信者。 最初のXNUMXつのパラメーターは、整数として指定する必要があります。 相談する
OSのドキュメントとインクルードファイルを使用して、適切な値を見つけてください。 The
local-addressは、sockaddr構造体のデータ表現である必要があります。
sa_familyおよび(BSD)sa_lenコンポーネント。
オプショングループ:FD、SOCKET、CHILD、RANGE
便利なオプション:fork、range、setsockopt-int、setsockopt-bin、setsockopt-string
参照:UDP-RECVFROM、IP-RECVFROM、UNIX-RECVFROM、SOCKET-DATAGRAM、SOCKET-SENDTO、
ソケット-RECV
ソケット-送信: : : :
指定された2つのソケットパラメータを使用してソケットを作成します(mansocket \(XNUMX)を参照)。
指定されたアドレスに送信データを送信し、応答を受信します。 XNUMXつ
パラメータは整数として指定する必要があります。 OSのドキュメントを参照して
適切な値を見つけるためにファイルを含めます。 リモートアドレスはデータである必要があります
sa_familyおよび(BSD)sa_lenを使用しないsockaddr構造体の表現
コンポーネント。
オプショングループ:FD、SOCKET
便利なオプション:bind、setsockopt-int、setsockopt-bin、setsockopt-string
参照:UDP-SENDTO、IP-SENDTO、UNIX-SENDTO、SOCKET-DATAGRAM、SOCKET-RECV
ソケット-RECVFROM
SOCKS4: : :
経由で接続します[IPアドレス]から[IPv4アドレス]オン[TCP
サービス]、IPバージョン4または4に応じてソックスバージョン6プロトコルを使用
アドレス指定、名前解決、またはオプションpf(例)。
オプショングループ:FD、SOCKET、IP4、IP6、TCP、SOCKS4、RETRY
便利なオプション:socksuser、socksport、sourceport、pf、retry
参照:SOCKS4A、PROXY、TCP
SOCKS4A: : :
SOCKS4と同様ですが、socksプロトコルバージョン4aを使用するため、ホスト名の解決が残ります。
ソックスサーバーに。
オプショングループ:FD、SOCKET、IP4、IP6、TCP、SOCKS4、RETRY
標準 ファイル記述子2を使用します。
オプショングループ:FD(TERMIOS、REG、SOCKET)
参照:FD
標準入力 ファイル記述子0を使用します。
オプショングループ:FD(TERMIOS、REG、SOCKET)
便利なオプション:readbytes
参照:FD
STDIUM 読み取りにファイル記述子0を使用し、書き込みに1を使用します。
オプショングループ:FD(TERMIOS、REG、SOCKET)
便利なオプション:readbytes
参照:FD
標準出力 ファイル記述子1を使用します。
オプショングループ:FD(TERMIOS、REG、SOCKET)
参照:FD
システム:
親プロセスとの通信を確立するサブプロセスをフォークし、
system()を使用して指定されたプログラムを呼び出します。 その点に注意してください
[文字列]には「、」、または「!!」を含めることはできません。また、そのシェルメタ文字には次の文字を含める必要があります。
保護されます。 プログラムの開始が成功した後、 ソキャット のstdinにデータを書き込みます
stdoutを処理して読み取ります。
オプショングループ:FD、SOCKET、EXEC、FORK、TERMIOS
便利なオプション:path、fdin、fdout、chroot、su、su-d、nofork、pty、stderr、ctty、
setsid、パイプ、sigint、sigquit
参照:EXEC
TCP: :
に接続します[TCPサービス]オン[IPアドレス] TCP / IPバージョン4または6を使用
アドレス指定、名前解決、またはオプションpfによって異なります。
オプショングループ:FD、SOCKET、IP4、IP6、TCP、RETRY
便利なオプション:crnl、bind、pf、connect-timeout、tos、mtudiscover、mss、nodelay、
ノンブロック、ソースポート、再試行、readbytes
参照:TCP4、TCP6、TCP-LISTEN、UDP、SCTP-CONNECT、UNIX-CONNECT
TCP4: :
TCPと同様ですが、IPv4プロトコルのみをサポートします(例)。
オプショングループ:FD、SOCKET、IP4、TCP、RETRY
TCP6: :
TCPと同様ですが、IPv6プロトコルのみをサポートします。
オプショングループ:FD、SOCKET、IP6、TCP、RETRY
TCP-LISTEN:
聞く[TCPサービス]そしてTCP / IP接続を受け入れます。 IPバージョンは
4またはアドレスオプションpf、socatオプション(-4、-6)、または
環境変数SOCAT_DEFAULT_LISTEN_IP。 このアドレスを開くことに注意してください
通常、クライアントが接続するまでブロックします。
オプショングループ:FD、SOCKET、LISTEN、CHILD、RANGE、IP4、IP6、TCP、RETRY
便利なオプション:crnl、fork、bind、range、tcpwrap、pf、max-children、backlog、mss、
su、reuseaddr、retry、cool-write
参照:TCP4-LISTEN、TCP6-LISTEN、UDP-LISTEN、SCTP-LISTEN、UNIX-LISTEN、
OPENSSL-LISTEN、TCP-CONNECT
TCP4-聞く:
TCP-LISTENと同様ですが、IPv4プロトコルのみをサポートします(例)。
オプショングループ:FD、SOCKET、LISTEN、CHILD、RANGE、IP4、TCP、RETRY
TCP6-聞く:
TCP-LISTENと同様ですが、IPv6プロトコルのみをサポートします。
追加の便利なオプション:ipv6only
オプショングループ:FD、SOCKET、LISTEN、CHILD、RANGE、IP6、TCP、RETRY
TUN [: / ]
Linux TUN / TAPデバイスを作成し、オプションでアドレスとネットマスクを割り当てます
パラメータによって与えられます。 結果として得られるネットワークインターフェイスは、
他のプロセス; socatはその「ワイヤー側」を提供します。 このアドレスには読み取りと書き込みが必要です
トンネルクローン作成デバイス(通常は/ dev / net / tun)へのアクセス、およびアクセス許可
いくつかのioctl()を設定します。 オプション イフアップ is の提出が必要です 〜へ 直ちに 活性化する
インターフェース!
オプショングループ:FD、NAMED、OPEN、TUN
便利なオプション:iff-up、tun-device、tun-name、tun-type、iff-no-pi
参照:ip-recv
UDP: :
に接続します[UDPサービス]オン[IPアドレス] UDP / IPバージョン4または6を使用
アドレス指定、名前解決、またはオプションpfによって異なります。
UDPプロトコルのプロパティにより、実際の接続はありません。
設立; サーバーに「接続」するためにデータを送信する必要があり、ファイルの終わりは送信しないでください
状態を輸送することができます。
オプショングループ:FD、SOCKET、IP4、IP6
便利なオプション:ttl、tos、bind、sourceport、pf
参照:UDP4、UDP6、UDP-LISTEN、TCP、IP
UDP4: :
UDPと同様ですが、IPv4プロトコルのみをサポートします。
オプショングループ:FD、SOCKET、IP4
UDP6: :
UDPと同様ですが、IPv6プロトコルのみをサポートします。
オプショングループ:FD、SOCKET、IP6
UDP-データグラム: :
特にブロードキャストである可能性がある指定されたアドレスに送信データを送信します
またはマルチキャストアドレス。 ローカルソケットに到着するパケットは、
リモートポートを修正し、それらの送信元アドレスがRANGEまたはTCPWRAPオプションと一致するかどうか。
このアドレスタイプは、たとえば、対称または非対称の実装に使用できます。
ブロードキャストまたはマルチキャスト通信。
オプショングループ:FD、SOCKET、IP4、IP6、RANGE
便利なオプション:bind、range、tcpwrap、broadcast、ip-multicast-loop、
ip-multicast-ttl、ip-multicast-if、ip-add-membership、ttl、tos、sourceport、pf
参照:UDP4-DATAGRAM、UDP6-DATAGRAM、UDP-SENDTO、UDP-RECVFROM、UDP-RECV、
UDP-CONNECT、UDP-LISTEN、IP-DATAGRAM
UDP4-データグラム: :
UDP-DATAGRAMと同様ですが、IPv4プロトコル(example1、example2)のみをサポートします。
オプショングループ:FD、SOCKET、IP4、RANGE
UDP6-データグラム: :
UDP-DATAGRAMと同様ですが、IPv6プロトコルのみをサポートします。
オプショングループ:FD、SOCKET、IP6、RANGE
UDP-聞く:
UDP / IPパケットが到着するのを待ちます[UDPサービス]と「接続」して
送信者。 受け入れられるIPバージョンは4またはオプションpfで指定されたものです。 お願いします
UDPプロトコルのプロパティにより、実際の接続は確立されないことに注意してください。 データ
最初にピアから到着する必要があり、ファイルの終わりの状態を転送することはできません。
このアドレスを開くと、通常、クライアントが接続するまでブロックされることに注意してください。
オプショングループ:FD、SOCKET、LISTEN、CHILD、RANGE、IP4、IP6
便利なオプション:fork、bind、range、pf
参照:UDP、UDP4-LISTEN、UDP6-LISTEN、TCP-LISTEN
UDP4-聞く:
UDP-LISTENと同様ですが、IPv4プロトコルのみをサポートします。
オプショングループ:FD、SOCKET、LISTEN、CHILD、RANGE、IP4
UDP6-聞く:
UDP-LISTENと同様ですが、IPv6プロトコルのみをサポートします。
オプショングループ:FD、SOCKET、LISTEN、CHILD、RANGE、IP6
UDP-SENDTO: :
によって定義された、指定されたピアソケットと通信します[UDPサービス]オン
[IPアドレス]、アドレスに応じてUDP / IPバージョン4または6を使用
仕様、名前解決、またはオプションpf。 パケットを送受信します
そのピアソケットからのパケットのみ。 このアドレスは、データグラムを効果的に実装します
クライアント。 これは、socatUDP-RECVFROMおよびUDP-RECVアドレスピアでうまく機能します。
オプショングループ:FD、SOCKET、IP4、IP6
便利なオプション:ttl、tos、bind、sourceport、pf
参照:UDP4-SENDTO、UDP6-SENDTO、UDP-RECVFROM、UDP-RECV、UDP-CONNECT、
UDP-LISTEN、IP-SENDTO
UDP4-SENDTO: :
UDP-SENDTOと同様ですが、IPv4プロトコルのみをサポートします。
オプショングループ:FD、SOCKET、IP4
UDP6-SENDTO: :
UDP-SENDTOと同様ですが、IPv6プロトコルのみをサポートします。
オプショングループ:FD、SOCKET、IP6
UDP-RECVFROM:
にUDPソケットを作成します[UDPサービス] UDP / IPバージョン4または6を使用
オプションpfで。 不特定のピアからXNUMXつのパケットを受信し、XNUMXつまたは
そのピアへのより多くの応答パケット。 このモードは、フォークオプションで特に役立ちます
ここで、任意のピアから到着する各パケットは、独自のサブによって処理されます。
処理する。 これにより、ntpdや
名前付き。 このアドレスは、socatUDP-SENDTOアドレスピアでうまく機能します。
オプショングループ:FD、SOCKET、IP4、IP6、CHILD、RANGE
便利なオプション:fork、ttl、tos、bind、sourceport、pf
参照:UDP4-RECVFROM、UDP6-RECVFROM、UDP-SENDTO、UDP-RECV、UDP-CONNECT、
UDP-LISTEN、IP-RECVFROM、UNIX-RECVFROM
UDP4-RECVFROM:
UDP-RECVFROMと同様ですが、IPv4プロトコルのみをサポートします。
オプショングループ:FD、SOCKET、IP4、CHILD、RANGE
UDP6-RECVFROM:
UDP-RECVFROMと同様ですが、IPv6プロトコルのみをサポートします。
オプショングループ:FD、SOCKET、IP6、CHILD、RANGE
UDP-RECV:
にUDPソケットを作成します[UDPサービス] UDP / IPバージョン4または6を使用
オプションpfで。 複数の不特定のピアからパケットを受信し、
データ。 返信はできません。 たとえば、socatUDP-SENDTOアドレスでうまく機能します
ピア; これは、syslogサーバーと同様に動作します。
オプショングループ:FD、SOCKET、IP4、IP6、RANGE
便利なオプション:fork、pf、bind、sourceport、ttl、tos
参照:UDP4-RECV、UDP6-RECV、UDP-SENDTO、UDP-RECVFROM、UDP-CONNECT、UDP-LISTEN、
IP-RECV、UNIX-RECV
UDP4-RECV:
UDP-RECVと同様ですが、IPv4プロトコルのみをサポートします。
オプショングループ:FD、SOCKET、IP4、RANGE
UDP6-RECV:
UDP-RECVと同様ですが、IPv6プロトコルのみをサポートします。
オプショングループ:FD、SOCKET、IP6、RANGE
UNIX-CONNECT:
に接続しますUNIXドメインソケットであると仮定します。 もしもではない
存在する場合、これはエラーです。 もしもUNIXドメインソケットではありません。これは
エラー; もしもUNIXドメインソケットですが、リッスンしているプロセスはありません。これは
エラー。
オプショングループ:FD、SOCKET、NAMED、RETRY、UNIX
)便利なオプション:バインド
参照:UNIX-LISTEN、UNIX-SENDTO、TCP
UNIX-聞く:
聞くUNIXドメインストリームソケットを使用し、接続を受け入れます。
もしも存在し、ソケットではありません。これはエラーです。 もしも存在する
UNIXドメインソケットであり、アドレスへのバインドが失敗します(オプションを使用)
リンク解除-早期!)。 このアドレスを開くと、通常、クライアントまでブロックされることに注意してください
接続します。 socatバージョン1.4.3以降、ファイルシステムエントリは削除されます
このアドレスが閉じられたとき(ただし、オプションunlink-closeを参照)(例)。
オプショングループ:FD、SOCKET、NAMED、LISTEN、CHILD、RETRY、UNIX
便利なオプション:fork、umask、mode、user、group、unlink-early
参照:UNIX-CONNECT、UNIX-RECVFROM、UNIX-RECV、TCP-LISTEN
UNIX-SENDTO:
[で定義された指定されたピアソケットと通信します]それが
UNIXドメインデータグラムソケット。 そこにパケットを送信し、そこからパケットを受信します
ピアソケットのみ。 ローカルソケットをバインドする必要がある場合があることに注意してください
アドレス(例:/ tmp / sock1、これまでに存在してはならない)。 このアドレスタイプ
socatUNIX-RECVFROMおよびUNIX-RECVアドレスピアでうまく機能します。
オプショングループ:FD、SOCKET、NAMED、UNIX
便利なオプション:バインド
参照:UNIX-RECVFROM、UNIX-RECV、UNIX-CONNECT、UDP-SENDTO、IP-SENDTO
UNIX-RECVFROM:
UNIXドメインデータグラムソケットを作成します[ ]。 XNUMXつのパケットを受信し、
XNUMXつ以上の応答パケットをそのピアに送信します。 このモードは特に便利です
任意のピアから到着する各パケットがによって処理されるフォークオプション付き
独自のサブプロセス。 このアドレスは、socatUNIX-SENDTOアドレスピアでうまく機能します。
オプショングループ:FD、SOCKET、NAMED、CHILD、UNIX
便利なオプション:フォーク
参照:UNIX-SENDTO、UNIX-RECV、UNIX-LISTEN、UDP-RECVFROM、IP-RECVFROM
UNIX-RECV:
UNIXドメインデータグラムソケットを作成します[ ]。 複数からパケットを受信します
不特定のピアとデータをマージします。 返信はできません。 たとえば、
socatUNIX-SENDTOアドレスピアによってアドレス指定されます。 これはsyslogと同様に動作します
サーバ。 オプショングループ:FD、SOCKET、NAMED、UNIX
参照:UNIX-SENDTO、UNIX-RECVFROM、UNIX-LISTEN、UDP-RECV、IP-RECV
UNIX-クライアント:
[で定義された指定されたピアソケットと通信します]それが
UNIXドメインソケット。 最初に接続を試み、それが失敗した場合は、接続していると見なします
データグラムソケット。したがって、両方のタイプをサポートします。
オプショングループ:FD、SOCKET、NAMED、UNIX
便利なオプション:バインド
参照:UNIX-CONNECT、UNIX-SENDTO、GOPEN
アブストラクト-接続:
要約-聞く:
要約-送信:
要約-RECVFROM:
要約-RECV:
要約-クライアント:
ABSTRACTアドレスは、関連するUNIXアドレスとほぼ同じです。
それらはファイルシステムベースのソケットではなく、代替のUNIXドメインに対応していること
アドレス空間。 これをアーカイブするために、ソケットアドレス文字列のプレフィックスは「\ 0」になります。
初めの。 この機能はLinuxで(のみ?)利用できます。 オプショングループは同じです
関連するUNIXアドレスと同じですが、ABSTRACTアドレスはそうではありません。
NAMEDグループのメンバー。
ADDRESS OPTIONS
アドレスオプションをアドレス仕様に適用して、次のプロセスに影響を与えることができます。
結果のデータチャネルのアドレスとプロパティを開きます。
技術的な理由から、すべてのオプションをすべてのアドレスタイプに適用できるわけではありません。 例えば、
通常のファイルにソケットオプションを適用すると失敗します。 ほとんどの役に立たない組み合わせをキャッチするには
早くもオープンフェーズでは、 オプション グループヘッド が導入されました。 各オプション
XNUMXつ以上のオプショングループに属しています。 オプションは、次のようなアドレスタイプでのみ使用できます。
オプショングループの少なくともXNUMXつをサポートします(ただし、オプション-gを参照してください)。
アドレスオプションには、その値が準拠する必要のあるデータ型があります。 すべてのアドレスオプション
キーワードまたはキーワードの後に「= value」が続くもので構成されます。ここで、valueは
オプションタイプ。 一部のアドレスオプションは、システムコールのパラメータを操作します。 例えば、
オプションsyncは、open()呼び出しでO_SYNCフラグを設定します。 他のオプションはシステムを引き起こしますまたは
ライブラリ呼び出し; たとえば、オプション `ttl = value 'を使用すると、setsockopt(fd、SOL_IP、IP_TTL、value、
sizeof(int))呼び出しが適用されます。 内部に設定された他のオプション ソキャット 使用される変数
データ転送中。 たとえば、 `crnl 'は明示的な文字変換を引き起こします。 いくつかのオプション
より複雑な実装があります。 たとえば、su-d(substuser-delayed)が一部のユーザーに問い合わせて
情報をグループ化し、保存し、後でchroot()呼び出しの後に適用します。
アドレスに複数のオプションが指定されている場合、アドレス指定でのそれらのシーケンス
それらの実行/適用の順序には(ほとんど)影響はありません。 その代わり、 ソキャット 持っています
ビルトイン オプション 相 オプションを便利な順序で持ってくることを試みるモデル。 いくつかの
オプションはさまざまな形式(たとえば、unlink、unlink-early、unlink-late)で存在し、
それらの実行の時間。
同じオプションがXNUMXつのアドレス指定内で複数回指定されている場合、
値が等しいか異なる場合、効果はオプションの種類によって異なります。 結果として生じるオプション
setsockopt()のような関数呼び出しは、複数の呼び出しを引き起こします。 設定されたオプション付き
open()のような必要な呼び出しのパラメーター、または内部フラグの設定、最後の値
オプションの出現が有効です。
多くのオプションの存在またはセマンティクスは、システムに依存します。 ソキャット 通常はしません
欠落しているlibcまたはカーネル機能をエミュレートしてみてください。これは、
基盤となるシステム。 したがって、オペレーティングシステムに機能がない場合、関連するオプションは次のとおりです。
このプラットフォームでは利用できません。
次の段落では、より一般的なアドレスオプションを紹介します。 詳細については
包括的なリファレンスと、正規のオプション名、エイリアス名、
オプションフェーズ、およびプラットフォームはファイルを参照 xio.ヘルプ.
FD オプション グループヘッド
このオプショングループには、UN * Xスタイルのファイル記述子に適用されるオプションが含まれています。
それがどのように生成されたかは関係ありません。 すべての現在の ソキャット アドレスタイプはファイル記述子です
ベースでは、これらのオプションは任意のアドレスに適用できます。
注:これらのオプションの一部は、別のオプショングループのメンバーでもあります。
別の非fdベースのメカニズム。 これらのオプションの場合、実際のアドレスタイプによって異なります
そして、そのオプションはどのメカニズムが使用されるかをグループ化します。 XNUMX番目の非fdベースのメカニズムは
優先されます。
cloexec =
fcntl()システムコールを使用してFD_CLOEXECフラグをvalueに設定します。 設定されている場合、
ファイル記述子は、exec()ファミリ関数呼び出しで閉じられます。 ソキャット 内部で処理します
制御するfdsのこのフラグなので、ほとんどの場合、適用する必要はありません。
このオプション。
セットルク fcntl(fd、
F_SETLK、...)システムコール。 ファイルがすでにロックされている場合、この呼び出しにより、
エラー。 Linuxで、グループのファイル権限が「S」(gx、g + s)の場合、
ファイルシステムは「mand」オプションを使用してローカルにマウントされます。ロックは必須です。
他のプロセスがファイルを開くのを防ぎます。
setlkw を使用して、ファイル全体に任意の待機書き込みロックを設定しようとします
fcntl(fd、F_SETLKW、...)システムコール。 ファイルがすでにロックされている場合、この呼び出し
ブロック。 このロックを必須にする方法については、オプションsetlkを参照してください。
setlk-rd
fcntl(fd、
F_SETLK、...)システムコール。 ファイルがすでに書き込みロックされている場合、この呼び出しは結果として発生します
エラーで。 このロックを必須にする方法については、オプションsetlkを参照してください。
setlkw-rd
を使用して、ファイル全体に任意の待機中の読み取りロックを設定しようとします。
fcntl(fd、F_SETLKW、...)システムコール。 ファイルがすでに書き込みロックされている場合、これは
コールブロック。 このロックを必須にする方法については、オプションsetlkを参照してください。
群れの元
flock(fd、
LOCK_EX)システムコール。 ソキャット ファイルが別のファイルによってロックされている場合、この呼び出しでハングします
プロセス。
群れ元nb
flock(fd、
LOCK_EX | LOCK_NB)システムコール。 ファイルがすでにロックされている場合、このオプションは次のようになります
エラー。
群れ-sh
flock(fd、
LOCK_SH)システムコール。 ソキャット ファイルが別のファイルによってロックされている場合、この呼び出しでハングします
プロセス。
群れ-sh-nb
flock(fd、
LOCK_SH | LOCK_NB)システムコール。 ファイルがすでにロックされている場合、このオプションは次のようになります
エラー。
ロック ファイルにブロッキングロックを設定します。 に応じてsetlkまたはflockメカニズムを使用します
特定のプラットフォームでの可用性。 両方が利用可能な場合、POSIXバリアント
(setlkw)が使用されます。
user =
を設定します(所有者)ストリームの。 アドレスがNAMEDのメンバーである場合
オプショングループ、 ソキャット ファイルまたはバインディングを開いた後、chown()システムコールを使用します
UNIXドメインソケットへ(競合状態!)。 ファイルシステムエントリがない場合、 ソキャット セット
fchown()システムコールを使用するストリームのユーザー。 これらの呼び出しには必要な場合があります
root権限。
user-late =
fdの所有者をに設定します開いた後のfchown()システムコールまたは
チャネルを接続します。 これは、ファイルシステムエントリでのみ役立ちます。
group =
を設定しますストリームの。 アドレスがNAMEDオプションのメンバーである場合
グループ、 ソキャット ファイルを開いた後、またはファイルにバインドした後、chown()システムコールを使用します
UNIXドメインソケット(競合状態!)。 ファイルシステムエントリがない場合、 ソキャット を設定します
fchown()システムコールを使用したストリームのグループ。 これらの呼び出しにはグループが必要な場合があります
メンバーシップまたはroot特権。
group-late =
fdのグループをに設定します開いた後のfchown()システムコールまたは
チャネルを接続します。 これは、ファイルシステムエントリでのみ役立ちます。
mode =
を設定しますストリームの[mode_t](権限)。 アドレスがのメンバーである場合
NAMEDオプショングループで、open()またはcreat()呼び出しを使用すると、モードが適用されます
これ等と一緒に。 アドレスがこれらを使用せずにNAMEDオプショングループのメンバーである場合
システムコール、 ソキャット ファイルシステムエントリを開いた後、chmod()システムコールを使用します
またはUNIXドメインソケットへのバインド(競合状態!)。 さもないと、 ソキャット を設定します
fchmod()を使用したストリームのモード。 これらの呼び出しには、所有権またはルートが必要な場合があります
特権。
perm-late =
fdの権限を値に設定します[mode_t] fchmod()システムを使用
チャネルを開くか接続した後に呼び出します。 これはファイルシステムでのみ役立ちます
エントリー。
append =
常に実際のファイルの終わりにデータを書き込みます。 アドレスがOPENのメンバーである場合
オプショングループ、 ソキャット open()システムコールでO_APPENDフラグを使用します(例)。
さもないと、 ソキャット fcntl(fd、F_SETFL、O_APPEND)呼び出しを適用します。
nonblock =
非ブロッキングモードでファイルを開くか使用しようとします。 その唯一の効果は、
TCPアドレスのconnect()呼び出しはブロックされず、名前付きパイプを開く
読み取りはブロックされません。 アドレスがOPENオプショングループのメンバーである場合、 ソキャット
open()システムコールでO_NONBLOCKフラグを使用します。 さもないと、 ソキャット を適用します
fcntl(fd、F_SETFL、O_NONBLOCK)呼び出し。
バイナリ 暗黙的なラインターミネータ変換を回避するために、ファイルをバイナリモードで開きます
(Cygwin)。
클라우드 기반 AI/ML및 고성능 컴퓨팅을 통한 디지털 트윈의 기초 – Edward Hsu, Rescale CPO 많은 엔지니어링 중심 기업에게 클라우드는 R&D디지털 전환의 첫 단계일 뿐입니다. 클라우드 자원을 활용해 엔지니어링 팀의 제약을 해결하는 단계를 넘어, 시뮬레이션 운영을 통합하고 최적화하며, 궁극적으로는 모델 기반의 협업과 의사 결정을 지원하여 신제품을 결정할 때 데이터 기반 엔지니어링을 적용하고자 합니다. Rescale은 이러한 혁신을 돕기 위해 컴퓨팅 추천 엔진, 통합 데이터 패브릭, 메타데이터 관리 등을 개발하고 있습니다. 이번 자리를 빌려 비즈니스 경쟁력 제고를 위한 디지털 트윈 및 디지털 스레드 전략 개발 방법에 대한 인사이트를 나누고자 합니다. ファイルをテキストモードで開き、暗黙のラインターミネータ変換を強制します(Cygwin)。
継承しない
生成されたプロセス(Cygwin)でこのファイルを開いたままにしません。
クールライト
EPIPEまたはECONNRESETで書き込みが失敗した場合に簡単になり、メッセージを次のようにログに記録します。
通知 代わりにレベル エラー。 これにより、ログファイルがいっぱいになるのを防ぎます
socatが大量のサーバーまたはプロキシとして使用されている場合の役に立たないエラーメッセージ
クライアントはしばしば接続を中止します。
このオプションは実験的なものです。
エンドクローズ
接続を終了する(アドレスに依存する)方法を変更して、
ファイル記述子。 これは、接続を再利用または共有する場合に便利です。
他のプロセスと(例)。
通常、ソケット接続はで終了します shutdown(2)これは
複数のプロセスで共有されている場合でもソケット。 閉じる(2)ソケットの「リンクを解除」
プロセスからですが、他からのリンクがまだある限り、それをアクティブに保ちます
プロセス。
同様に、EXECまたはSYSTEMタイプのアドレスが終了すると、socatは通常
サブプロセスを明示的に強制終了します。 このオプションを使用すると、ファイルを閉じるだけです
記述子。
シャットなし
の書き込み部分をシャットダウンする(アドレスに依存する)方法を変更します
何もしない接続。
シャットダウン
の書き込み部分をシャットダウンする(アドレスに依存する)方法を変更します
shutdown \(fd、SHUT_WR)への接続。 ソケットでのみ役立ちます。
シャットクローズ
の書き込み部分をシャットダウンする(アドレスに依存する)方法を変更します
close \(fd)への接続。
シャットヌル
XNUMXつのアドレスがEOFを示す場合、 ソキャット ゼロサイズのパケットを書き込みに送信します
EOF条件を転送するための他のアドレスのチャネル。 これはUDPで役立ちます
およびその他のデータグラムプロトコル。 オプション付きのnetcatおよびsocatに対してテスト済み
null-eof。
null-eof
通常は ソキャット データグラムに到着する空の(サイズがゼロのペイロード)パケットを無視します
ソケットなので、ポートスキャンに耐えます。 このオプションで ソキャット 空を解釈します
EOFインジケータとしてのデータグラムパケット(shut-nullを参照)。
ioctl-void =
要求値をXNUMX番目の引数として、NULLをXNUMX番目の引数としてioctl()を呼び出します。
このオプションを使用すると、socatに明示的に実装されていないioctlを利用できます。
ioctl-int = :
要求値をXNUMX番目の引数として、整数値を次のように指定してioctl()を呼び出します。
XNUMX番目の引数。
ioctl-intp = :
XNUMX番目の引数として要求値を使用してioctl()を呼び出し、
XNUMX番目の引数としての整数値。
ioctl-bin = :
XNUMX番目の引数として要求値と指定されたポインターへのポインターを使用してioctl()を呼び出します
XNUMX番目の引数としてのデータ値。 このデータはで指定する必要があります形。
ioctl-string = :
XNUMX番目の引数として要求値と指定されたポインターへのポインターを使用してioctl()を呼び出します
XNUMX番目の引数としての文字列。 形。
命名 オプション グループヘッド
これらのオプションは、ファイルシステムエントリで機能します。
オプションuser、group、およびmodeも参照してください。
user-early =
を変更します(所有者)ファイルシステムエントリにアクセスする前に、
chown()システムコール。 この呼び出しにはroot権限が必要な場合があります。
group-early =
を変更しますchown()を使用して、ファイルシステムエントリにアクセスする前に
システムコール。 この呼び出しには、グループメンバーシップまたはroot権限が必要な場合があります。
perm-early =
を変更しますファイルシステムエントリの[mode_t]にアクセスする前に、
chmod()システムコール。 この呼び出しには、所有権またはルート権限が必要な場合があります。
umask =
プロセスのumaskをに設定します[mode_t]ファイルシステムにアクセスする前
エントリ(UNIXドメインソケットで便利です!)。 この呼び出しはさらにすべてに影響を与える可能性があります
の操作 ソキャット 処理する!
リンク解除-早期
ファイルを開く前、およびユーザーが早期に適用する前であっても、ファイルのリンクを解除(削除)します
等々
リンク解除 ファイルにアクセスする前、ただしユーザーの後でファイルのリンクを解除(削除)します-earlyなど。
リンク解除-遅い
ファイルを開いた後、ファイルのリンクを解除(削除)して、他のユーザーがファイルにアクセスできないようにします
短い競合状態の後に処理します。
リンクを解除-閉じる
アドレスを閉じるときに、アドレスファイルシステムのエントリを削除します。 名前付きパイプの場合、
UNIXドメインソケット、およびデフォルトのptyアドレスのシンボリックリンクをリッスンします
1です。 作成されたファイル、開いたファイル、一般的な開いたファイル、およびクライアントUNIXドメインの場合
ソケットのデフォルトは0です。
OPEN オプション グループヘッド
OPENグループオプションを使用すると、open()システムコールでフラグを設定できます。 例:オプション
`creat 'はO_CREATフラグを設定します。
オプションappendおよびnonblockも参照してください。
creat =
ファイルが存在しない場合はファイルを作成します(例)。
dsync =
metainfoが物理的にメディアに書き込まれるまで、write()呼び出しをブロックします。
excl =
オプションcreatを使用すると、ファイルが存在する場合、これはエラーになります。
largefile =
32ビットシステムでは、2 ^ 31バイトを超えるファイルを許可します。
ノアタイム
O_NOATIMEオプションを設定して、読み取りによってアクセスタイムスタンプが変更されないようにします。
noctty =
このファイルを制御端末にしません。
nofollow =
シンボリックリンクをたどりません。
nshare =
このファイルを他のプロセスと共有することを許可しません。
rshare =
他のプロセスがこのファイルを書き込み用に開くことを許可しません。
rsync =
metainfoが物理的にメディアに書き込まれるまでwrite()をブロックします。
sync =
データが物理的にメディアに書き込まれるまで、write()をブロックします。
rdonly =
読み取り専用でファイルを開きます。
wronly =
書き込み専用でファイルを開きます。
切り捨てる ファイルを開くときに、ファイルをサイズ0に切り捨てます。
REG と BLK オプション グループヘッド
これらのオプションは通常、UN * Xファイル記述子に適用されますが、それらのセマンティクスにより、
ランダムアクセスをサポートするファイルでのみ検出します。
シーク=
lseek(fd、 、SEEK_SET)(またはlseek64)システムコール、したがって
ファイルポインタを絶対に配置する[off_tまたはoff64_t]。 ご注意ください
欠落している値のデフォルトは1ではなく0です。
seek-cur =
lseek(fd、 、SEEK_CUR)(またはlseek64)システムコール、したがって
ファイルポインタの配置[off_tまたはoff64_t]バイトをその相対的な
現在の位置(通常は0)。 欠落している値のデフォルトは
1ではなく0です。
seek-end =
lseek(fd、 、SEEK_END)(またはlseek64)システムコール、したがって
ファイルポインタの配置[off_tまたはoff64_t]バイトを相対的に
ファイルの現在の終わり。 欠落している値のデフォルトは1ではなく0であることに注意してください。
ftruncate =
ftruncate(fd、 )(または利用可能な場合はftruncate64)システムコール、したがって
その位置でファイルを切り捨てる[off_tまたはoff64_t]。 注意してください
欠落している値のデフォルトは1ではなく0です。
secrm =
unrm =
compr =
ext2-sync =
不変=
ext2-append =
nodump =
ext2-noatime =
ジャーナルデータ=
notail =
dirsync =
これらのオプションは、オペレーティングシステムとファイルの非標準ファイル属性を変更します
ext2fs、ext3fs、またはreiserfsを備えたLinuxなど、これらの機能をサポートするシステム。
これらのオプションの詳細については、man 1chattrを参照してください。 あるかもしれないことに注意してください
ファイルの作成とこれらのオプションの適用の間の競合状態。
プロセス オプション グループヘッド
このグループのオプションは、XNUMXつのデータに影響を与えるだけでなく、プロセスのプロパティを変更します
チャネル。 EXECおよびSYSTEMアドレスの場合、およびLISTENおよびCONNECTタイプのアドレスの場合
オプションFORKの場合、これらのオプションはメインのsocatプロセスではなく子プロセスに適用されます。
chroot =
chroot()操作を実行してアドレスを処理した後
(例)。 この呼び出しにはroot権限が必要な場合があります。
chroot-early =
chroot()操作を実行してアドレスを開く前に。 この呼び出し
root権限が必要な場合があります。
setgid =
プライマリを変更しますアドレスを処理した後のプロセスの。 この呼び出し
root権限が必要な場合があります。 このオプションは他をドロップしないことに注意してください
グループ関連の特権。
setgid-early =
setgitと同様ですが、アドレスを開く前に実行されます。
setuid =
を変更します(所有者)アドレスを処理した後のプロセスの。 この呼び出し
root権限が必要な場合があります。 このオプションはグループを削除しないことに注意してください
関連する特権。 オプションsuがニーズに適しているかどうかを確認します。
setuid-early =
setuidと同様ですが、アドレスを開く前に実行されます。
su =
を変更します(所有者)およびアドレスを処理した後のプロセスのグループ
(例)。 この呼び出しにはroot権限が必要な場合があります。
su-d =
substuser-delayedの短縮名。 を変更します(所有者)とのグループ
アドレスを処理した後に処理します(例)。 ユーザーと彼のグループは
取り戻した 可能なchroot()。 この呼び出しにはroot権限が必要な場合があります。
setpgid =
プロセスを指定されたプロセスグループのメンバーにします。 値がない場合
与えられた場合、または値が0または1の場合、プロセスは新しいプロセスのリーダーになります
グループ。
セットシッド プロセスを新しいセッションのリーダーにします(例)。
読み込まれた行 オプション グループヘッド
ライセンスの制限により、Debianではreadline機能が無効になっています(バグを参照)。
これらのオプションは、readlineアドレスタイプに適用されます。
history =
履歴の読み取りと書き込み(例)。
プロンプトなし
バージョン1.4.0以降、socatはデフォルトでプロンプトを決定しようとします。
readline呼び出しに渡されます-の最後の不完全な行を記憶することによって
出力。 このオプションを使用すると、socatはプロンプトをreadlineに渡さないため、開始します
ターミナルの最初の列の行編集。
noecho =
次の入力行を防ぐプロンプトの通常のパターンを指定します
画面に表示されたり、履歴に追加されたりすることはありません。 プロンプト
最後の後にreadlineアドレスに出力されたテキストとして定義されます
改行文字および入力文字が入力される前。 パターンは通常です
式、たとえば「^ [Pp] assword:。* $」または「([Uu] ser:| [Pp] assword :)」。 正規表現を参照\(7)
詳細については。 (例)
prompt =
文字列をプロンプトとしてreadline関数に渡します。 readlineはこのプロンプトを出力します
歴史を歩むとき。 この文字列が発行された定数プロンプトと一致する場合
他のsocatアドレスのインタラクティブプログラムにより、一貫したルックアンドフィールが可能になります
アーカイブされます。
お申込み オプション グループヘッド
このグループには、データレベルで機能するオプションが含まれています。 これらのオプションは適用されるだけであることに注意してください
socatによって転送された「生の」データに、しかし次のようなアドレスによって使用されるプロトコルデータには
プロキシー。
cr デフォルトの行終了文字NL( '\ n'、0x0a)をCR( '\ r'、
0x0d)このチャネルで書き込み/読み取りを行う場合。
クローン デフォルトの行終了文字NL( '\ n'、0x0a)をCRNLとの間で変換します
( "\ r \ n"、0x0d0a)このチャネルで書き込み/読み取りを行う場合(例)。 注:socat
すべてのCR文字を削除するだけです。
無視する
このチャネルでEOFが発生すると、 ソキャット それを無視し、より多くのデータを読み込もうとします(
"tail -f")(例)。
readbytes =
ソキャット このアドレスから非常に多くのバイトのみを読み取ります(アドレスは非常に多くのバイトしか提供しません
転送用のバイトと、後でEOFにあるふりをします)。 0より大きくなければなりません。
lockfile =
ロックファイルが存在する場合、エラーで終了します。 ロックファイルが存在しない場合は、それを作成して
続行し、終了時にロックファイルのリンクを解除します。
waitlock =
ロックファイルが存在する場合は、消えるまで待ちます。 ロックファイルが存在しない場合、
それを作成して続行し、終了時にロックファイルのリンクを解除します。
エスケープ=
入力ストリームでEOFをトリガーする文字の数値コードを指定します。 これ
rawモードの端末で役立ちます(例)。
ソケット オプション グループヘッド
これらのオプションは、IPやUNIXドメインなど、あらゆる種類のソケットを対象としています。 ほとんどが
setsockopt()呼び出しで適用されます。
bind =
bind()システムコールを使用して、指定されたソケットアドレスにソケットをバインドします。 フォーム
のソケットドメインに依存します:IP4およびIP6はフォームを許可します
[hostname | hostaddress] [:( service | port)](例)、UNIXドメインソケットには
。
connect-timeout =
後に接続の試行を中止します[timeval]エラーステータス。
so-bindtodevice =
ソケットを指定されたものにバインドします。 このオプションにはrootが必要な場合があります
特権。
放送
データグラムソケットの場合、ブロードキャストアドレスへの送信とパケットの受信を許可します
ブロードキャストアドレスにアドレス指定されます。
debug ソケットのデバッグを有効にします。
ルートしない
直接接続されたピアとのみ通信し、ルーターは使用しません。
生き続ける
ソケットでキープアライブを送信できるようにします。
linger =
データ転送が終了するか、指定されるまで、shutdown()またはclose()をブロックします
タイムアウト[int]が期限切れになりました。
ウービンライン
帯域外データを入力データストリームに配置します。
優先度=
定義されたプロトコルを設定します[ ]発信パケットの場合。
rcvbuf =
socket()呼び出し後の受信バッファのサイズを設定します[int]。 と
TCPソケット。この値は、ソケットの最大ウィンドウサイズに対応します。
rcvbuf-late =
ソケットがすでに接続されている場合の受信バッファのサイズを設定します
[int]。 TCPソケットの場合、この値はソケットの最大ウィンドウに対応します
サイズ。
rcvlowat =
ソケットレイヤーが実行するまでの受信バイトの最小数[int]を指定します
バッファリングされたデータをに渡す ソキャット.
rcvtimeo =
受信タイムアウト[timeval]を設定します。
再利用アドレス
アドレスの一部(ローカルなど)であっても、他のソケットがアドレスにバインドできるようにします
ポート)はすでに使用されています ソキャット (例)。
sndbuf =
socket()呼び出し後の送信バッファーのサイズを設定します[int]。
sndbuf-late =
ソケットがに接続されているときの送信バッファのサイズを設定します[int]。
sndlowat =
ソケットレイヤーまでの送信バッファーの最小バイト数を指定します
データをに送信します[int]。
sndtimeo =
送信タイムアウトを秒[timeval]に設定します。
pf =
指定されたIPバージョンまたはプロトコルの使用を強制します。 何かになることができます
「ip4」や「ip6」のように。 結果の値は、socket()の最初の引数として使用されます
またはsocketpair()呼び出し。 このオプションは、アドレスの解決と必要なものに影響します
バインドおよび範囲オプションの構文。
type =
socket()またはのXNUMX番目の引数として指定されたソケットのタイプを設定します
socketpair()は、 [int]。 アドレス解決はこれの影響を受けません
オプション。 Linuxでは、1はストリーム指向のソケット、2はデータグラムソケット、そして
3はrawソケットを意味します。
プロトタイプ
socket()またはのXNUMX番目の引数として指定されたソケットのプロトコルを設定します
socketpair()は、 [int]。 アドレス解決は影響を受けません
このオプション。 6はTCPを意味し、17はUDPを意味します。
そう-タイムスタンプ
SO_TIMESTAMPソケットオプションを設定します。 これにより、
タイムスタンプ補助メッセージ。
setsockopt-int = : :
指定されたパラメーターを使用して、ソケットに対してsetsockopt()を呼び出します。 レベル[int]が使用されます
setsockopt()の6番目の引数として、レイヤーを指定します。たとえば、TCPの場合はSOL_TCP(XNUMX
Linuxの場合)、またはソケット層の場合はSOL_SOCKET(Linuxの場合は1)。 optname [int]は
setsockopt()のXNUMX番目の引数であり、どのソケットオプションを設定するかを指示します。 のために
あなたがあなたの適切なインクルードファイルを調べなければならないかもしれない実際の数
システム。 4番目のsetsockopt()パラメーター値[int]は、次の関数に渡されます。
ポインタ、および長さパラメータのsizeof \(int)は暗黙的に取得されます。
setsockopt-bin = : :
setsockopt-intと似ていますが、 dalan形式で提供する必要があり、
バイトの任意のシーケンス。 長さパラメータは、
データ。
setsockopt-string = : :
setsockopt-intと似ていますが、 文字列である必要があります。 この文字列はに渡されます
末尾のヌル文字で機能し、長さパラメーターは自動的に
データから導き出されます。
UNIX オプション グループヘッド
これらのオプションは、UNIXドメインベースのアドレスに適用されます。
unix-tightsocklen = [0 | 1]
ソケット操作では、全体を含まないソケットアドレスの長さを渡します
struct sockaddr_unレコードですが、(他のコンポーネントを除いて)の関連部分のみ
ファイル名または抽象文字列。 デフォルトは1です。
IP4 と IP6 オプション グループヘッド
これらのオプションは、IPv4およびIPv6ベースのソケットで使用できます。
tos =
発信パケットのTOS(タイプオブサービス)フィールドをに設定します[バイト](RFCを参照
791)。
ttl =
発信パケットのTTL(存続時間)フィールドをに設定します[バイト]。
ip-options =
ソースルーティングなどのIPオプションを設定します。 バイナリ形式で指定する必要があり、推奨
formatは、先頭の「x」の後に偶数のXNUMX進数が続きます。 このオプションは
複数回使用すると、データが追加されます。 たとえば、を介してホスト10.0.0.1に接続するには
緩いソースルートを使用する一部のゲートウェイ、アドレスパラメータとしてゲートウェイを使用し、
オプションip-options = x8307040a000001を使用してルーズソースルートを設定します。
IPオプションはRFC791で定義されています。
mtudiscover = <0 | 1 | 2>
このソケットでパスMTU探索を行わない、必要としない、または常に使用するには、0、1、2を使用します。
ip-pktinfo
IP_PKTINFOソケットオプションを設定します。 これにより、補助の受信とロギングが可能になります
宛先アドレスとインターフェースを含むメッセージ(Linux)(例)。
IP回復
IP_RECVERRソケットオプションを設定します。 これにより、補助の受信とロギングが可能になります
詳細なエラー情報を含むメッセージ。
ip-recvopts
IP_RECVOPTSソケットオプションを設定します。 これにより、IPの受信とログ記録が可能になります
オプション補助メッセージ(Linux、* BSD)。
ip-recvtos
IP_RECVTOSソケットオプションを設定します。 これにより、TOS(タイプ
of service)補助メッセージ(Linux)。
ip-recvttl
IP_RECVTTLソケットオプションを設定します。 これにより、TTL(時間)の受信とロギングが可能になります
生きるために)補助メッセージ(Linux、* BSD)。
ip-recvdstaddr
IP_RECVDSTADDRソケットオプションを設定します。 これにより、
宛先アドレス(* BSD)を含む補助メッセージ(例)。
ip-recvif
IP_RECVIFソケットオプションを設定します。 これにより、インターフェースの受信とロギングが可能になります
補助メッセージ(* BSD)(例)。
ip-add-membership =
ip-add-membership =
ip-add-membership =
ip-add-membership =
ip-add-membership =
指定されたマルチキャストグループのソケットメンバーになります。 これは現在のみです
IPv4用に実装されています。 このオプションは、マルチキャストグループのIPアドレスと
目的のネットワークインターフェイスに関する情報。 最も一般的な構文は最初の構文です。
その他は、struct mreqn(Linux)を提供するシステムでのみ使用できます。
アクティブなネットワークインターフェイスのインデックスは、ユーティリティを使用して表示できます プロカン.
ip-multicast-if =
マルチキャストに使用するネットワークインターフェイスのホスト名またはアドレスを指定します
トラフィック。
ip-multicast-loop =
発信マルチキャストトラフィックをインターフェイスにループバックするかどうかを指定します。
ip-multicast-ttl =
発信マルチキャストトラフィックに使用されるTTLを設定します。 デフォルトは1です。
再デバッグ
レス-aaのみ
res-usevc
レスプライマリ
再点火
再帰
レス定義名
レスステイオープン
レスDNSRCH
これらのオプションは、対応するリゾルバー(名前解決)オプションフラグを設定します。
デフォルトオプションをクリアするには、「= 0」を追加します。 詳細については、man resolver \(5)を参照してください。
これらのオプション。 注:これらのオプションは、適用されているアドレスに対してのみ有効です
に。
IP6 オプション グループヘッド
これらのオプションは、IPv6ベースのソケットでのみ使用できます。 できるオプションについては、IPオプションを参照してください
IPv4ソケットとIPv6ソケットの両方に適用されます。
ipv6only =
IPV6_V6ONLYソケットオプションを設定します。 0の場合、TCPスタックも受け入れます
同じポートでIPv4プロトコルを使用する接続。 デフォルトはシステムに依存します。
ipv6-recvdstopts
IPV6_RECVDSTOPTSソケットオプションを設定します。 これにより、
宛先オプションを含む補助メッセージ。
ipv6-recvhoplimit
IPV6_RECVHOPLIMITソケットオプションを設定します。 これにより、
hoplimitを含む補助メッセージ。
ipv6-recvhopopts
IPV6_RECVHOPOPTSソケットオプションを設定します。 これにより、
ホップオプションを含む補助メッセージ。
ipv6-recvpktinfo
IPV6_RECVPKTINFOソケットオプションを設定します。 これにより、
宛先アドレスとインターフェースを含む補助メッセージ。
ipv6-unicast-hops = link(TYPE_INT)( )。
IPV6_UNICAST_HOPSソケットオプションを設定します。 これにより、ホップカウント制限(TTL)が設定されます。
発信ユニキャストパケット。
ipv6-recvrthdr
IPV6_RECVRTHDRソケットオプションを設定します。 これにより、
ルーティング情報を含む補助メッセージ。
ipv6-tclass
IPV6_TCLASSソケットオプションを設定します。 これにより、送信の転送クラスが設定されます
パケット。
ipv6-recvtclass
IPV6_RECVTCLASSソケットオプションを設定します。 これにより、
転送クラスを含む補助メッセージ。
TCP オプション グループヘッド
これらのオプションは、TCPソケットに適用できます。 それらは、setsockopt()を呼び出すことによって機能します。
適切なパラメータ。
コルク MSS(最大セグメントサイズ)よりも小さいパケットを送信しません。
延期-受け入れる
リッスン中は、ピアからのデータが到着したときにのみ接続を受け入れます。
keepcnt =
ソケットをシャットダウンする前のキープアライブの数をに設定します[int]。
keepidle =
最初のキープアライブをに送信する前のアイドル時間を設定します[int]。
keepintvl =
XNUMXつのキープアライブ間の間隔をに設定します[int]。
linger2 =
ソケットをFIN-WAIT-2状態に保つ時間を次のように設定します。 [int]。
mss =
socket()呼び出し後のMSS(最大セグメントサイズ)を[int]。 これ
次に、SYNまたはSYN / ACKパケットを使用して値がピアに提案されます(例)。
mss-late =
接続が確立された後のソケットのMSSをに設定します[int]。
遅延なし
RTT(往復時間)を測定するためのNagleアルゴリズムをオフにします。
rfc1323
RFC1323 TCPオプションを有効にします:TCPウィンドウスケール、ラウンドトリップ時間測定(RTTM)、
ラップされたシーケンス番号(PAWS)(AIX)から保護します。
標準 RFC1122準拠の緊急ポインタ処理(AIX)を有効にします。
syncnt =
接続中にSYNが再送信する最大数を設定します[int]。
md5sig パケットでのMD5ダイジェストの生成を有効にします(FreeBSD)。
ヌープト TCPオプション(FreeBSD、MacOSX)の使用を無効にします。
ノープッシュ TCP_NOPUSHソケットオプション(FreeBSD、MacOSX)を設定します。
サック無効
選択的確認応答機能(OpenBSD)の使用を無効にします。
署名を有効にする
パケットでのMD5ダイジェストの生成を有効にします(OpenBSD)。
中止-しきい値=
確立された接続でピアの応答を待機する時間を設定します
(HP-UX)。
conn-abort-threshold =
最初の接続中にサーバーの応答を待機する時間を設定します
(HP-UX)。
キープイット
connect \()中にサーバーの応答を待ってから与える時間を設定します
上。 150秒単位の値、デフォルトは75(64s)(TruXNUMX)です。
足 「ラップされたシーケンス番号から保護する」機能を有効にします(Tru64)。
サケナ
選択的確認応答(Tru64)を有効にします。
ツプテナ
既存の接続でRTTの再計算を可能にするタイムスタンプオプションを有効にします
(Tru64)。
SCTP オプション グループヘッド
これらのオプションは、SCTPストリームソケットに適用できます。
sctp-nodelay
Nagleアルゴリズムを無効にするSCTP_NODELAYソケットオプションを設定します。
sctp-maxseg =
SCTP_MAXSEGソケットオプションをに設定します[int]。 次に、この値が提案されます
SYNまたはSYN / ACKパケットを使用してピアに送信します。
UDP、 TCP、 と SCTP オプション グループヘッド
ここでは、ネットワークポートメカニズムに関連しているため、使用できるオプションを見つけます。
UDP、TCP、およびSCTPクライアントおよびサーバーアドレスを使用します。
sourceport =
発信(クライアント)TCPおよびUDP接続の場合、ソースを設定しますを使用して
追加のbind()呼び出し。 TCPまたはUDPのリッスンアドレスを使用すると、socatはすぐにシャットダウンします
クライアントがこのソースポートを使用しない場合の接続(例)。
ローポート
このオプションを使用した発信(クライアント)TCPおよびUDP接続は、未使用のランダムを使用します
640〜1023のソースポート(含む)。 UNIXクラスのオペレーティングシステムでは、これは
root権限が必要であるため、クライアントプロセスが許可されていることを示します
ローカルルートによる。 このオプションを使用したTCPおよびUDPリッスンアドレスはすぐにシャットダウンされます
クライアントがソースポート<= 1023を使用しない場合の接続。このメカニズムは次のことができます。
状況によっては、限定的な許可を提供します。
SOCKS オプション グループヘッド
SOCKSタイプのアドレスを使用する場合、一部のソックス固有のオプションを設定できます。
socksport = サービス>
socksサーバーポートのデフォルトの「socks」サービスまたはポート1080を次のようにオーバーライドします。
。
socksuser =
を送信しますsocksサーバーへのusernameフィールドの[string]。 デフォルトは
実際のユーザー名($ LOGNAMEまたは$ USER)(例)。
HTTP オプション グループヘッド
HTTPタイプのアドレスで提供できるオプション。 現在唯一のHTTPアドレス
実装されているのはプロキシ接続です。
proxyport = サービス>
デフォルトのHTTPプロキシポート8080を次のようにオーバーライドします。
無視する
HTTPプロトコルでは、ラインターミネータとしてCR + NLを使用する必要があります。 プロキシサーバーの場合
この基準に違反しているため、socatはその答えを理解できない可能性があります。 このオプションは指示します
socatは、NLを行末記号として解釈し、回答のCRを無視します。
それでも、socatはCR + NLをプロキシに送信します。
proxyauth = :
プロキシサーバーに「基本」認証を提供します。 オプションの引数は
base64でエンコードされた形式の「Proxy-Authorization:Base」ヘッダーとともに使用されます。
注:ユーザー名とパスワードは、ローカルマシンのすべてのユーザーに表示されます
プロセスリスト; ユーザー名とパスワードは暗号化されずにプロキシサーバーに転送されます
(base64エンコード)およびスニッフィングされる可能性があります。
解決する
デフォルトでは、socatはターゲットを含むCONNECTリクエストをプロキシに送信します
ホスト名。 このオプションを使用すると、socatはホスト名をローカルで解決し、IPを送信します
住所。 RFC 2396によると、IPv4への名前解決のみであることに注意してください。
アドレスが実装されています。
RANGE オプション グループヘッド
これらのオプションは、接続しているクライアントにアクセスを許可する必要があるかどうかを確認します。 それらは適用することができます
ネットワークソケットのリッスンと受信に。 tcp-wrappersオプションはこのグループに分類されます。
range =
接続を受け入れた後、ピアが内にあるかどうかをテストします 範囲。 IPv4の場合
アドレス、アドレス範囲はアドレス/ビットの形式を取ります。例:10.0.0.0/8、または
アドレス:マスク、例:10.0.0.0:255.0.0.0(例); IPv6の場合は
[ip6-address / bits]、例:[:: 1/128]。 クライアントアドレスが一致しない場合、 ソキャット
警告を発し、聞き取り/受信を続けます。
tcpwrap [= ]
Wietse Venemaのlibwrap(tcpd)ライブラリを使用して、クライアントが許可されているかどうかを判断します
接続する。 構成ファイルは /etc/hosts.allow と /etc/hosts.deny 以下のために
デフォルトでは、詳細については「man5hosts_access」を参照してください。 オプション(タイプ
string)は、デーモンプロセス名(例)としてラッパー関数に渡されます。 もしも
省略した場合、socats呼び出しのベース名(argv [0])が渡されます。 両方のtcpwrapの場合
範囲オプションがアドレスに適用される場合、両方の条件を満たす必要があります。
接続を許可します。
allow-table =
/etc/hosts.allowの代わりに指定されたファイルを取得します。
deny-table =
/etc/hosts.denyの代わりに指定されたファイルを取得します。
tcpwrap-etc =
指定されたディレクトリでhosts.allowとhosts.denyを検索します。 によってオーバーライドされます
オプションhosts-allowおよびhosts-deny。
聴く オプション グループヘッド
リスニングソケットに固有のオプション。
backlog =
listen()システムコールで渡されるバックログ値をに設定します[int]。
デフォルトは5です。
max-children =
同時子プロセスの数を制限します[int]。 デフォルトは制限なしです。
子 オプション グループヘッド
子プロセスを介した複数の接続を持つアドレスのオプション。
フォーク 接続を確立した後、子プロセスでそのチャネルを処理し、維持します
リッスンまたはリッスンすることによって、より多くの接続を生成しようとする親プロセス
ループで接続する(例)。
OPENSSL-CONNECTとOPENSSL-LISTENは、実際に子をフォークするタイミングが異なります。
OPENSSL-LISTENフォーク SSLハンドシェイク、OPENSSLSSL-CONNECTフォーク
その後。 RETRYおよびFOREVERオプションは、子プロセスに継承されません。
一部のオペレーティングシステム(FreeBSDなど)では、このオプションはUDP-LISTENでは機能しません
アドレス。
エグゼク オプション グループヘッド
プログラムを呼び出すアドレスのオプション。
パス=
プログラムを検索するためのPATH環境変数をオーバーライドします。 。
この$ PATH値は、子プロセスでも有効です。
ログイン execvp()呼び出しのプレフィックスargv [0]に「-」を付けて、シェルを次のように動作させます。
ログインシェル。
FORK オプション グループヘッド
EXECまたはSYSTEMアドレスは、子プロセスを使用してプログラムを呼び出し、間でデータを転送します
ソキャット とプログラム。 プロセス間通信メカニズムは、
次のオプション。 デフォルトでは、socketpair()が作成され、stdinとstdoutに割り当てられます。
stderrがから継承されている間、子プロセスの ソキャット プロセス、そして子供
プロセスは、メインのsocatプロセスとの通信にファイル記述子0および1を使用します。
ノーフォーク プログラムを実行するためのサブプロセスをフォークせず、代わりにexecvp \()または
system \()は、実際のsocatインスタンスから直接取得します。 これにより、
プログラムとそのピアの間の別のプロセスですが、多くの
制限:
oこのオプションはXNUMX番目にのみ適用できます ソキャット 住所。
oデュアルアドレスの一部には適用できません。
o最初のsocatアドレスをOPENSSLまたはREADLINEにすることはできません
o socatオプション-b、-t、-D、-l、-v、-xが役に立たなくなる
o両方のアドレスについて、オプションignoreof、cr、およびcrnlは役に立たなくなります
o XNUMX番目のアドレス(オプションnoforkを持つアドレス)の場合、options append、cloexec、
flock、user、group、mode、nonblock、perm-late、setlk、およびsetpgidはできません
適用。 ただし、これらの一部は最初のアドレスで使用できます。
パイプ ソケットの代わりにプロセス間通信用の無名パイプのペアを作成します
ペア。
オープンプティ
で作成された疑似端末を使用してサブプロセスとの通信を確立します
デフォルト(socketpairまたはptmx)の代わりにopenpty()。
ptmx によって作成された疑似端末を使用して、サブプロセスとの通信を確立します。
開設 / dev / ptmx or / dev / ptc デフォルト(ソケットペア)の代わりに。
PTY の代わりに疑似端末を使用してサブプロセスとの通信を確立します
ソケットペア。 利用可能なメカニズムでptyを作成します。 openptyとptmxが
どちらも利用可能ですが、これはPOSIXに準拠しているため(例)、ptmxを使用します。
クッティ ptyをサブプロセスの制御ttyにします(例)。
stderr stderrをdup()にすることにより、サブプロセスのstderrをその出力チャネルに転送します。
stdout(例)。
fdin =
サブプロセスの入力チャネルをそのファイル記述子に割り当てますそれ以外の
stdin(0)。 サブプロセスから開始されたプログラムは、読み取りにこのfdを使用する必要があります
データ ソキャット (例)。
fdout =
サブプロセスの出力チャネルをそのファイル記述子に割り当てますそれ以外の
stdout(1)。 サブプロセスから開始されたプログラムは、書き込みにこのfdを使用する必要があります
データを ソキャット (例)。
ため息、 シギント、 シグクイット
ています ソキャット このタイプのシグナルをサブプロセスに渡します。 住所にこれがない場合
オプションの場合、socatはこれらのシグナルで終了します。
テルミオス オプション グループヘッド
ttyで機能するアドレス(例:stdio、file:/ dev / tty、exec:...、pty)の場合、ターミナル
UN * Xターミオスメカニズムで定義されたパラメータがアドレスオプションとして利用可能になります
パラメーター。 インタラクティブ端末のパラメータの変更に注意してください
後も有効なまま ソキャットの終了なので、「reset」または「stty」と入力する必要がある場合があります
オプションPTYを使用したEXECおよびSYSTEMアドレスの場合、これらは
オプションは、子プロセスによってptyに適用されます。
b0 ターミナルを切断します。
b19200 シリアル回線速度を19200ボーに設定します。 他のいくつかの料金が可能です。 使用する
socat -hh | grep'b [1-9] 'のように、サポートされているすべての速度を検索します。
インプリメンテーション。
注:一部のオペレーティングシステムでは、これらのオプションを使用できない場合があります。 ispeedまたは
代わりにospeed。
echo =
ローカルエコーを有効または無効にします。
icanon =
正規モードを設定またはクリアして、行バッファリングといくつかの特殊文字を有効にします。
生 rawモードを設定し、入力と出力をほとんど未処理で渡します。 このオプションは
廃止されました。代わりにオプションrawerまたはcfmakerawを使用してください。
生 ターミナルをrawオプションよりもrawにします。 このオプションは、暗黙的にエコーをオフにします。
(例)。
cfmakeraw
cfmakeraw()を呼び出すか、この呼び出しをシミュレートすることにより、rawモードを設定します。 このオプション
暗黙的にエコーをオフにします。
ignbrk =
BREAK文字を無視または解釈します(例:^ C)
brkint =
bs0
bs1
bsdly = <0 | 1>
clocal =
cr0
cr1
cr2
cr3
キャリッジリターン遅延をそれぞれ0、1、2、または3に設定します。 0は遅延がないことを意味し、
他の値は端末に依存します。
crdly = <0 | 1 | 2 | 3>
cread =
crtscts =
cs5
cs6
cs7
cs8
文字サイズをそれぞれ5、6、7、または8ビットに設定します。
csize = <0 | 1 | 2 | 3>
cstopb =
XNUMXつではなくXNUMXつのストップビットを設定します。
dsusp =
現在のフォアグラウンドを一時停止するVDSUSP文字の値を設定します
シェルを処理して再アクティブ化します(Linuxを除くすべて)。
echoctl =
エコーは帽子表記の文字を制御します(例:^ A)
echoe =
echok =
echoke =
echonl =
echoprt =
eof =
eol =
eol2 =
消去=
破棄=
ff0
ff1
ffdly =
flusho =
hupcl =
icrnl =
iexten =
igncr =
ignpar =
imaxbel =
inlcr =
inpck =
intr =
isig =
ispeed =
この回線の着信データのボーレートを設定します。
参照:ospeed、b19200
istrip =
iuclc =
ixany =
ixoff =
ixon =
kill =
lnext =
min =
nl0 改行遅延を0に設定します。
nl1
nldly =
noflsh =
ocrnl =
ofdel =
ofill =
olcuc =
onlcr =
onlret =
onocr =
opost =
出力処理を有効または無効にします。 たとえば、NLをCR-NLに変換します。
ospeed =
この回線の発信データのボーレートを設定します。
参照:ispeed、b19200
parenb =
出力でのパリティ生成と入力のパリティチェックを有効にします。
parmrk =
parodd =
ペンディン=
quit =
reprint =
健全な 端末を便利なデフォルト状態のようなものにします。
start =
stop =
susp =
swtc =
tab0
tab1
tab2
tab3
tabdly =
時間=
tostop =
vt0
vt1
vtdly =
werase =
xcase =
xtab
i-ポップオール
UNIX System V STREAMSでは、スタックからすべてのドライバーを削除します。
i-push =
UNIX System V STREAMSでは、指定された名前(文字列)でドライバー(モジュール)をプッシュします
スタックに。 たとえば、Solarisのキャラクターデバイスを確認するには
termiosなどをサポートします。次のオプションを使用してください。
i-pop-all、i-push = ptem、i-push = ldterm、i-push = ttcompat
PTY オプション グループヘッド
これらのオプションは、ptyアドレスタイプでの使用を目的としています。
link =
実際の疑似端末(pty)を指すシンボリックリンクを生成します。 これ
ptysが多かれ少なかれ生成されるという問題を解決するのに役立つかもしれません
予測できない名前、socatで生成されたptyに直接アクセスすることを困難にする
自動的。 このオプションを使用すると、ユーザーはファイル内の「修正」ポイントを指定できます
彼が実際のptyにアクセスするのに役立つ階層(例)。 から始まる ソキャット
バージョン1.4.3では、アドレスが閉じられるとシンボリックリンクが削除されます(ただし、を参照してください)。
オプションunlink-close)。
待機スレーブ
プロセスがptyのスレーブ側を開くまで、オープンフェーズをブロックします。 いつもの、
socatは、ptyを生成した後、次のアドレスを開くか、
転送ループに入ります。 wait-slaveオプションを使用すると、socatは
プロセスは続行する前にptyのスレーブ側を開きます。 このオプションは機能するだけです
オペレーティングシステムがpoll()システムコールを提供する場合。 そしてそれは
ptyの動作は文書化されていないため、すべてのオペレーティングシステムで機能するわけではありません。 これ
Linux、FreeBSD、NetBSD、およびopenptyを使用するTru64で正常にテストされています。
pty-interval =
wait-slaveオプションが設定されている場合、socatは定期的にHUP状態をチェックします
poll()を使用して、ptyのスレーブ側が開かれているかどうかを確認します。 デフォルトのポーリング
間隔は1秒です。 この値を変更するには、pty-intervalオプション[timeval]を使用します。
OPENSSL オプション グループヘッド
これらのオプションは、opensslおよびopenssl-listenアドレスタイプに適用されます。
暗号=
接続に使用できる暗号のリストを選択します。 マニュアルページを参照してください
暗号の、セクション CIPHER LIST FORMAT、構文の詳細については、
値、およびデフォルトの。
':'で区切って、いくつかの暗号文字列を指定できます。 いくつかの単純な暗号文字列:
3DESトリプルDESを備えた暗号スイートを使用します。
MD5MD5で暗号スイートを使用します。
aNULL認証なしで暗号スイートを使用します。
NULL暗号化を使用しません。
HIGH「高」暗号化の暗号スイートを使用します。 ピアはをサポートする必要があることに注意してください
選択したプロパティ、またはネゴシエーションは失敗します。
メソッド=
使用するプロトコルバージョンを設定します。 有効な文字列(大文字と小文字は区別されません)は次のとおりです。
SSL2SSLプロトコルバージョン2を選択します。
SSL3SSLプロトコルバージョン3を選択します。
SSL23利用可能な最良のSSLまたはTLSプロトコルを選択します。 これは、このオプションのデフォルトです
提供されていません。
TLS1TLSプロトコルバージョン1を選択します。
TLS1.1TLSプロトコルバージョン1.1を選択します。
TLS1.2TLSプロトコルバージョン1.2を選択します。
DTLS1DTLSプロトコルバージョン1を選択します。
検証=
ピアの証明書のチェックを制御します。 デフォルトは1(true)です。 検証を無効にする
すべての人にソケットを開いて、暗号化を役に立たなくする可能性があります。
cert =
認証用の証明書と秘密鍵を含むファイルを指定します。 The
証明書はOpenSSL形式(* .pem)である必要があります。 openssl-listenを使用して、これを使用します
オプションを強くお勧めします。 暗号aNULLを除いて、「共有暗号なし」エラー
証明書が与えられていない場合に発生します。
key =
秘密鍵でファイルを指定します。 秘密鍵は、このファイルまたは
certオプションで指定されたファイル。 それが
証明書の所有者には秘密鍵が必要です。
dhparams =
DiffieHellmanパラメーターを使用してファイルを指定します。 これらのパラメータは
certオプションで指定されたファイルでは、dhparamsオプションは
必要です。
cafile =
信頼できる(ルート)権限証明書を持つファイルを指定します。 ファイルは
PEM形式であり、XNUMXつ以上の証明書が含まれている必要があります。 チェックするパーティー
ピアの認証は、このファイルにある証明書のみを信頼します。
capath =
信頼できる(ルート)証明書のあるディレクトリを指定します。 ディレクトリは、
PEM形式の証明書とそのハッシュが含まれています(OpenSSLのドキュメントを参照)
egd =
一部のシステムでは、opensslはランダムデータの明示的なソースを必要とします。 指定します
egdのようなエントロピー収集デーモンがランダムデータを提供するソケット名。
/ dev / egd-pool。
ニックネーム opensslがエントロピーソースを見つけることができず、エントロピーがないシステムの場合
収集デーモンを利用できます。このオプションは、提供するメカニズムをアクティブにします。
疑似エントロピー。 これは、現在の時刻をマイクロ秒単位で取得することでアーカイブされます。
libc疑似乱数ジェネレータに初期値を供給します。 opensslは
次に、random \()呼び出しからの出力がフィードされます。
注:このメカニズムは、安全なキーの生成には不十分です。
圧縮する
接続の圧縮の使用を有効または無効にします。 これを「なし」に設定する
圧縮を無効にし、「自動」に設定すると、OpenSSLは利用可能な最良のものを選択できます
両方の当事者によってサポートされているアルゴリズム。 デフォルトでは、何も触れないでください
圧縮関連の設定。 注:OpenSSL 0.9.8以降が必要であり、無効にする必要があります
OpenSSL 0.9.8による圧縮は、プロセス内のすべての新しい接続に影響します。
commonname =
ピア証明書が一致する必要がある共通名を指定します。 OPENSSL-CONNECTを使用
アドレスこれは、指定されたホスト名またはIPターゲットアドレスを上書きします。 OPENSSL-LISTENを使用
これにより、ピア証明書の共通名のチェックがオンになります。 このオプションには意味があります
オプション検証が無効になっておらず、選択された暗号がピアを提供する場合
証明書。
フィップス コンパイルされている場合はFIPSモードを有効にします。FIPS暗号化の実装に関する情報
標準参照 http://oss-institute.org/fips-faq.html。 このモードでは、
関連する証明書は、FIPS対応バージョンのopensslで生成されます。
XNUMXつのsocatアドレスでこのオプションを設定またはクリアすると、すべてのOpenSSLアドレスに影響します
このプロセスの。
RETRY オプション グループヘッド
一部のシステムコール、特に接続試行の再試行を制御するオプション。
再試行=
接続またはリッスンの試行が中止されるまでの再試行回数。 デフォルトは
0は、XNUMX回の試行のみを意味します。
間隔=
連続する試行間の時間(秒、[timespec])。 デフォルトは1秒です。
に前進
無制限の再試行回数を実行します。
TUN オプション グループヘッド
Linux TUN / TAPインターフェイスデバイスアドレスを制御するオプション。
tun-device =
socatにTUNクローンデバイスの別のパスを取るように指示します。 デフォルトは
/ dev / net / tun。
tun-name =
結果のネットワークインターフェイスに、システムではなく特定の名前を付けます
生成された(tun0、tun1など)
tun-type = [tun | tap]
TUNデバイスのタイプを設定します。 このオプションを使用して、TAPデバイスを生成します。 を参照してください
これらのタイプの違いについては、Linuxのドキュメントを参照してください。 あなたが確立しようとすると
XNUMXつのTUNデバイス間のトンネルの場合、それらのタイプは同じである必要があります。
イフ・ノ・ピ
デバイスに追加のパケットが含まれるかどうかを制御するIFF_NO_PIフラグを設定します
トンネル内の情報。 XNUMXつのTUNの間にトンネルを確立しようとすると
デバイスの場合、これらのフラグは同じ値である必要があります。
イフアップ TUNネットワークインターフェイスのステータスをUPに設定します。 強く推奨する。
iffブロードキャスト
TUNネットワークインターフェイスのBROADCASTフラグを設定します。
iff デバッグ
TUNネットワークインターフェイスのDEBUGフラグを設定します。
iff-ループバック
TUNネットワークインターフェイスのLOOPBACKフラグを設定します。
iff-pointopoint
TUNデバイスのPOINTOPOINTフラグを設定します。
イフノトレーラー
TUNデバイスのNOTRAILERSフラグを設定します。
if-実行中
TUNデバイスのRUNNINGフラグを設定します。
iff-noarp
TUNデバイスのNOARPフラグを設定します。
iff-promisc
TUNデバイスのPROMISCフラグを設定します。
iff-allmulti
TUNデバイスのALLMULTIフラグを設定します。
iffマスター
TUNデバイスのMASTERフラグを設定します。
iff スレーブ
TUNデバイスのSLAVEフラグを設定します。
iff-マルチキャスト
TUNデバイスのMULTICASTフラグを設定します。
iff ポートセル
TUNデバイスのPORTSELフラグを設定します。
iff-オートメディア
TUNデバイスのAUTOMEDIAフラグを設定します。
iff-動的
TUNデバイスのDYNAMICフラグを設定します。
DATA VALUES
このセクションでは、パラメータとアドレスオプションに対応するさまざまなデータ型について説明します
取っていいよ。
アドレス範囲
現在、IPv4とIPv6にのみ実装されています。 address-option `range 'を参照してください
bool "0"または "1"; 値を省略すると、「1」が使用されます。
byte unsigned int番号、strtoul()で読み取られ、UCHAR_MAX以下。
コマンドライン
プログラム名とその引数をシングルスペースで区切って指定する文字列。
data以下の生データ仕様 ブランチ 構文。 現在、有効なフォームは
'x'で始まり、その後に偶数のXNUMX進数が続く文字列。
バイトのシーケンス。
ディレクトリにジョブを開始します。
通常のUN * Xディレクトリ名のセマンティクスを持つ文字列。
施設
小文字のsyslogファシリティの名前。
fdnum unsigned int型で、strtoul()で読み取られ、UN * Xファイル記述子を指定します。
ファイル名
通常のUN * Xファイル名セマンティクスを持つ文字列。
group最初の文字がXNUMX進数の場合、値はstrtoul()で次のように読み取られます。
グループIDを指定する符号なし整数。 それ以外の場合は、既存のグループである必要があります
名前。
int基数が「0」のstrtol()関数の規則に従う数値、つまりXNUMX進数
数値、先頭に「0」が付いた0進数、または先頭に「XNUMXx」が付いたXNUMX進数。 The
値はCintに収まる必要があります。
インタフェース
ifconfigまたはで示されるネットワークインターフェイスのデバイス名を指定する文字列
procan、例えば「eth0」。
IPアドレス
数字とドットの表記のIPv4アドレス、6進表記のIPvXNUMXアドレス
角かっこで囲むか、IPv4またはIPv6アドレスに解決されるホスト名。
例:127.0.0.1、[:: 1]、www.dest-unreach.org、dns1
IPv64アドレス
数字とドットの表記のIPv4アドレス、またはIPv4に解決されるホスト名
住所。
例:127.0.0.1、www.dest-unreach.org、dns2
IPv66アドレス
角かっこで囲まれた6進数とコロンの表記のiPvXNUMXアドレス、または
IPv6アドレスに解決されるホスト名。
Examples: [::1], [1234:5678:9abc:def0:1234:5678:9abc:def0], ip6name.domain.org
long strtol()で読み取られた数値。 値はClongに収まる必要があります。
長い長い
strtoll()で読み取られた数値。 値はClonglongに収まる必要があります。
off_t実装は、strtolまたはで読み取られる符号付き数値(通常は32ビット)に依存します。
strtoll。
off64_t
strtolまたはで読み取られる実装依存の符号付き数値(通常は64ビット)
strtoll。
mode_t符号なし整数。strtoul()で読み取られ、モード(許可)ビットを指定します。
pid_tプロセスIDを指定するstrtol()で読み取られる数値。
ポートTCPまたはUDPポートを指定するuint16_t(16ビット符号なし番号)。
strtoul()。
符号なし8ビット数。strtoul()で読み取ります。
size_t size_tに制限のある符号なし数値、strtoulで読み取ります。
靴下名
ソケットアドレス。 address-option `bind 'を参照してください
string '\ 0'を含まず、内の位置に応じて文字のシーケンス
コマンドライン、 ':'、 '、'、または "!!"。 シェルメタをエスケープする必要がある場合があることに注意してください
コマンドラインの文字。
TCPサービス
getservbyname()によって解決される、数字で始まらないサービス名、または
strtoul()で読み取られたunsigned int16ビット数。
タイムヴァル
秒を指定するダブルフロート。 番号は構造体timevalにマップされます。
秒とマイクロ秒で構成されます。
タイムスペック
秒を指定するダブルフロート。 番号は構造体timespecにマップされます。
秒とナノ秒で構成されます。
UDPサービス
getservbyname()によって解決される、数字で始まらないサービス名、または
strtoul()で読み取られたunsigned int16ビット数。
unsigned int
strtoul()で読み取られた数値。 値はCのunsignedintに収まる必要があります。
user最初の文字がXNUMX進数の場合、値はstrtoul()で次のように読み取られます。
ユーザーIDを指定する符号なし整数。 それ以外の場合は、既存のユーザー名である必要があります。
例
ソキャット - TCP4:www.domain.org:80
STDIO(-)とTCP4接続の間でホストのポート80にデータを転送します
www.domain.org。 この例では、telnetと同様のインタラクティブ接続が可能になります
またはnetcat。 stdin端末パラメータは変更されないため、閉じることができます
^ Dで中継するか、^ Cで中止します。
ソキャット -d -d READLINE、history = $ HOME / .http_history \
TCP4:www.domain.org:www、crnl
これは前の例と似ていますが、現在の行を編集できます
bashのような方法(READLINE)を使用し、履歴ファイル.http_historyを使用します。 ソキャット プリント
進捗状況に関するメッセージ(-d -d)。 ポートはサービス名(www)で指定され、
NLの代わりに正しいネットワーク回線終端文字(crnl)が使用されます。
ソキャット TCP4-聞く:www TCP4:www.domain.org:www
単純なTCPポートフォワーダーをインストールします。 TCP4-LISTENを使用すると、ローカルポートでリッスンします
接続が確立されるまで「www」、それを受け入れ、リモートホストに接続します
(TCP4)データ転送を開始します。 XNUMX番目の接続は受け入れません。
ソキャット -d -d -lmlocal2 \
TCP4-LISTEN:80,bind=myaddr1,reuseaddr,fork,su=nobody,range=10.0.0.0/8 \
TCP4:www.domain.org:80、bind = myaddr2
TCPポートフォワーダー。各サイドは別のローカルIPアドレス(バインド)にバインドされます。 これ
例は、ほぼ任意の数の並列または連続接続を処理します
各accept()の後に新しいプロセスをforkすることによって。 それはによって少しセキュリティを提供します
フォークした後、誰もユーザーに訴えない; プライベートからの接続のみを許可します
10ネットワーク(範囲); restartaddrにより、マスター後すぐに再起動できます
一部の子ソケットが完全にシャットダウンされていない場合でも、プロセスの終了。
-lmlocal2を使用すると、socatはacceptループに正常に到達するまでstderrにログを記録します。
さらなるロギングは、ファシリティlocal2を使用してsyslogに送信されます。
ソキャット TCP4-LISTEN:5555、fork、tcpwrap = script \
EXEC:/ bin / myscript、chroot = / home / sandbox、su-d = sandbox、pty、stderr
接続(TCP4-LISTEN)とフォークの新しい子を受け入れる単純なサーバー
各接続のプロセス。 すべての子は単一のリレーとして機能します。 クライアントはする必要があります
のデーモンプロセス名「script」のルールに一致する /etc/hosts.allow と
/etc/hosts.denyそれ以外の場合は、アクセスが拒否されます(「man5hosts_access」を参照)。 ために
プログラムを実行すると、子プロセスのchrootは / home / sandbox、suはユーザーに
サンドボックス、そしてプログラムを開始します / home / sandbox / bin / myscript. ソキャット とmyscript
疑似tty(pty)を介して通信します。 myscriptのstderrはstdoutにリダイレクトされるため、
そのエラーメッセージは経由で転送されます ソキャット 接続されたクライアントに。
ソキャット EXEC: "mail.sh [メール保護]"、fdin = 3、fdout = 4 \
TCP4:mail.relay.org:25、crnl、bind = alias1.server.org、mss = 512
メール.sh で配布されるシェルスクリプトです ソキャット、単純なSMTPを実装します
クライアント。 FD 3(入力)および4(出力)でSMTPを「話す」ようにプログラムされています。 fdin
およびfdoutオプションは ソキャット これらのFDをプログラムとの通信に使用します。
mail.shはstdinとstdoutを継承するため ソキャット それらを使用しない、スクリプト
stdinからメール本文を読み取ることができます。 ソキャット alias1をローカル送信元アドレスにします
(バインド)、正しいネットワーク回線終端(crnl)を処理し、最大512を送信します
パケットあたりのデータバイト数(mss)。
ソキャット -、escape = 0x0f / dev / ttyS0、rawer、crnl
モデムとの通信などのために、シリアル回線を介してインタラクティブ接続を開きます。
rawerは、コンソールとttyS0の端末パラメータを実用的な値に設定します。
crnlは、正しい改行文字に変換します。 エスケープはsocatを終了することを可能にします
文字制御による処理-O。
ソキャット UNIX-聞く:/tmp/.X11-unix/X1,fork \
SOCKS4:host.victim.org:127.0.0.1:6000、socksuser = nobody、sourceport = 20
UNIXの場合-LISTEN、 ソキャット リッスンしているUNIXドメインソケットを開きます /tmp/.X11-unix/X1.
このパスは、マシンのローカルXWindowディスプレイ:1に対応しているため、XWindow
DISPLAY =:1へのクライアント接続が受け入れられます。 ソキャット その後、SOCKS4と話します
サーバーhost.victim.orgは、次の理由でソースポート20ベースの接続を許可する可能性があります。
静的IPフィルターのFTP関連の弱点。 ソキャット によって呼び出されるふりをする
socksuser nobody、およびループバックポート6000への接続を要求します(弱いのみ)
sockd構成はこれを可能にします)。 だから私たちは犠牲者とのつながりを得る
XWindowサーバー、およびMIT CookieまたはKerberos認証を必要としない場合は、
仕事を始めることができます。 一度に接続できるのはXNUMXつだけであることに注意してください。
TCPは、特定のアドレスとポートのセットでXNUMXつのセッションしか確立できないためです。
ソキャット -u / tmp / readdata、seek-end = 0、ignoreeof -
これは、単方向データ転送(-u)の例です。 ソキャット からデータを転送します
ファイル/ tmp / readdata(暗黙のアドレスGOPEN)、現在の終わりから開始
(seek-end = 0 lets ソキャット ファイルの現在の終わりから読み取りを開始します。 seek = 0を使用するかシークを使用しない
「tail-f」のようなモード(ignoreeof)で最初に既存のデータを読み取るオプション。 The
「ファイル」は、リッスンしているUNIXドメインソケットの場合もあります(シークオプションは使用しないでください)。
その後)。
(睡眠 5; echo パスワード; 眠る 5; echo ls; 眠る 1) |
ソキャット - EXEC: 'ssh -l user サーバー '、pty、setsid、ctty
EXECはサーバーへのsshセッションを終了します。 間の通信にptyを使用します ソキャット と
sshは、sshがtty(ctty)を制御し、このptyを新しいの所有者にします。
プロセスグループ(setsid)なので、sshはからのパスワードを受け入れます ソキャット.
ソキャット -u TCP4-LISTEN:3334、reuseaddr、fork \
OPEN:/tmp/in.log,creat,append
単純なネットワークベースのメッセージコレクターを実装します。 に接続するクライアントごとに
ポート3334では、新しい子プロセスが生成されます(オプションフォーク)。 によって送信されたすべてのデータ
クライアントはファイル/tmp/in.logに追加されます。 ファイルが存在しない場合は、socat
作成します。 オプションreuseaddrを使用すると、サーバープロセスをすぐに再起動できます。
ソキャット PTY、link = $ HOME / dev / vmodem0、rawer、wait-slave \
EXEC: "ssh モデムサーバー.us.org ソキャット - / dev / ttyS0、nonblock、rawer "
クライアント上に疑似端末デバイス(PTY)を生成します。
シンボリックリンク $ HOME / dev / vmodem0。 シリアル回線を期待するアプリケーションまたは
モデムは使用するように構成できます $ HOME / dev / vmodem0; そのトラフィックはに向けられます
別のsocatインスタンスがリンクしているssh経由のmodemserver / dev / ttyS0.
ソキャット TCP4-LISTEN:2022、reuseaddr、fork \
PROXY:proxy:www.domain.org:22、proxyport = 3128、proxyauth = user:pass
ポート2022で接続を受け入れるフォワーダーを開始し、それらを通過させます
ホストプロキシのポート3128(proxyport)でリッスンしているプロキシデーモン。
CONNECTメソッド。「pass」(proxyauth)を使用して「user」として認証されます。 The
次に、プロキシはポート22でホストwww.domain.orgへの接続を確立する必要があります。
ソキャット - OPENSSL:server:4443、cafile = server.crt、cert = client.pem
は、SSLサーバーへの安全な接続を確立しようとするOpenSSLクライアントです。
オプションcafileは、信頼証明書を含むファイルを指定します。
サーバーがこれらの証明書のXNUMXつを提示し、サーバーが所有していることを証明する場合にのみサーバー
関連する秘密鍵。 それ以外の場合、接続は終了します。 証明書付きファイル
クライアント証明書と関連する秘密鍵を含むものが指定されています。 これ
サーバーがクライアント認証を希望する場合に必要です。 多くのインターネット
サーバーはそうではありません。
最初のアドレス( '-')は、他のほとんどすべてのsocatアドレスに置き換えることができます。
ソキャット OPENSSL-LISTEN:4443、reuseaddr、pf = ip4、fork、cert = server.pem、cafile = client.crt パイプ
TCP接続を受け入れるOpenSSLサーバーであり、からの証明書を提示します
ファイルserver.pemを使用して、検証された証明書をクライアントに提示させます。
cafile.crtに対して。
XNUMX番目のアドレス( 'PIPE')は、他のほとんどすべてのsocatアドレスに置き換えることができます。
OpenSSLキーと証明書の生成と配布の手順については、を参照してください。
追加のsocatdocusocat-openssl.txt。
echo | socat -u - file:/ tmp / bigfile、create、largefile、seek = 100000000000
100GBのスパースファイルを作成します。 これには、これをサポートするファイルシステムタイプが必要です
(ext2、ext3、reiserfs、jfs; minix、vfatではありません)。 1バイトを書き込む操作は
時間がかかり(reiserfs:数分、ext2:「時間なし」)、結果のファイルは次のようになります。
iノードだけでディスクスペースを消費します(reiserfs:2MB; ext2:16KB)。
ソキャット tcp-l:7777、reuseaddr、fork システム: 'filan -i 0 -s >&2 '、nofork
ポート7777で着信TCP接続をリッスンします。受け入れられた接続ごとに、
シェルを呼び出します。 このシェルのstdinとstdoutはTCPに直接接続されています
ソケット(nofork)。 シェルはfilanを起動し、ソケットアドレスを次のように出力します。
stderr(ターミナルウィンドウ)。
echo -en "\ 0 \ 14 \ 0 \ 0 \ c" | socat -u - ファイル:/usr/bin/squid.exe,seek=0x00074420
プリミティブバイナリエディタとして機能します。4バイトの000 014をに書き込みます。
オフセット0x00074420の実行可能/ usr / bin / squid(これは実際に作成するパッチです
Cygwinからのsquid実行可能ファイルはWindowsで実行され、実際には2004年XNUMX月に実行されます)。
ソキャット - tcp:www.blackhat.org:31337、readbytes = 1000
不明なサービスに接続し、フラッディングを防ぎます。
ソキャット -U TCP:target:9999、end-close TCP-L:8888、reuseaddr、fork
ポート8888の異なるTCPストリームから到着するデータをXNUMXつのストリームにマージします
ターゲット:9999。 end-closeオプションは、子プロセスが
共有接続を終了してから9999までの2番目のアドレス(close \(XNUMX)just
親プロセスが存続している限りアクティブなままであるiノードのリンクを解除します。
shutdown \(2)は、接続をアクティブに終了します)。
ソキャット - UDP4-DATAGRAM:192.168.1.0:123,sp=123,broadcast,range=192.168.1.0/24
ブロードキャストをネットワーク192.168.1.0/24に送信し、の応答を受信します
そこにタイムサーバー。 このネットワーク外のホストからのNTPパケットを無視します。
ソキャット - SOCKET-DATAGRAM:2:2:17:x007bxc0a80100x0000000000000000,b‐
ind=x007bx00000000x0000000000000000,setsockopt-int=1:6:1,r‐
ange=x0000xc0a80100x0000000000000000:x0000xffffff00x0000000000000000
意味的には前の例と同等ですが、すべてのパラメーターは
一般的な形式で指定されます。 setsockopt-intの値6は、Linuxの値です。
SO_BROADCAST。
ソキャット - IP4-DATAGRAM:255.255.255.255:44,broadcast,range=10.0.0.0/8
プロトコル44を使用してローカルネットワークにブロードキャストを送信します。
プライベートアドレス範囲のみ。
ソキャット - UDP4-DATAGRAM:224.255.0.1:6666,bind=:6666,ip-add-membership=224.255.0.1:eth0
UDPを使用して、stdinから指定されたマルチキャストアドレスにデータを転送します。 両方のローカル
リモートポートは6666です。インターフェイスeth0にマルチキャストも受け入れるように指示します
指定されたグループのパケット。 ローカルネットワーク上の複数のホストがこれを実行できます
コマンドを実行すると、いずれかのホストから送信されたすべてのデータが他のすべてのホストによって受信されます。
もの。 IPフィルターなど、失敗には多くの理由が考えられることに注意してください。
ルーティングの問題、オペレーティングシステム、ブリッジ、または
正しく構成されていないスイッチ。
ソキャット TCP:host2:4443 TUN:192.168.255.1 / 24、up
host2との仮想(プライベートではない!)ネットワークの片側を確立します。
同様のプロセスがUDP-Lとtunアドレス192.168.255.2で実行される可能性があります。 彼らは到達することができます
アドレス192.168.255.1と192.168.255.2を使用して相互に。 ストリーミングに注意してください
例えば。 TCPまたはSSL経由は、パケット境界を保持することを保証しないため、
パケット損失を引き起こします。
ソキャット PTY、link = / var / run / ppp、rawer インターフェース:hdlc0
pppdがシリアルデバイスを必要とするため、そうではない可能性があるという問題を回避します
ネットワークデバイスによって表される同期回線で動作することができます。 socat
pppdを幸せにするためのPTYを作成し、ネットワークインターフェイスhdlc0にバインドし、次のことができます。
両方のデバイス間でデータを転送します。 次に、デバイス/ var / run / pppでpppdを使用します。
ソキャット -T 1 -d -d TCP-L:10081、reuseaddr、fork、crlf システム:「エコー -e \ "\\\" HTTP / 1.0 200
OK \\\ nDocumentType: text / plain \\\ n \\\ ndate:
\ $ \(date \)\\\ nserver:\ $ SOCAT_SOCKADDR:\ $ SOCAT_SOCKPORT \\\ nclient:
\ $ SOCAT_PEERADDR:\ $ SOCAT_PEERPORT \\\ n \\\ "\"; 猫; echo -e \ "\\\" \\\ n \\\ "\" "
単純なHTTPエコーサーバーを作成します。接続する各HTTPクライアントは有効なHTTPを取得します
によって見られるクライアントのアドレスとポートに関する情報を含む応答
サーバーホスト、ホストアドレス(マルチホームサーバーでは異なる場合があります)、および
元のクライアント要求。
ソキャット -d -d
UDP4-RECVFROM:9999、so-broadcast、so-timestamp、ip-pktinfo、ip-recverr、ip-recvopts、ip-recvtos、ip-recvttl !!-
システム: 'エクスポート; 眠る 1 ' | grep ソキャット
ポート9999で着信UDPパケットを待機し、環境変数を出力します
socatによって提供されます。 BSDベースのシステムでは、ip-pktinfoを次のように置き換える必要があります。
ip-recvdstaddr、ip-recvif。 特に興味深いのはSOCAT_IP_DSTADDRです。
ユニキャスト、マルチキャスト、またはブロードキャストの可能性があるパケットのターゲットアドレス
住所。
診断
ソキャット 重大度でメッセージをフィルタリングできるロギングメカニズムを使用します。 重大度
提供されるものは、適切なsyslog優先度と多かれ少なかれ互換性があります。 XNUMXつまたは最大
-dコマンドラインオプションがXNUMX回出現します。これは、メッセージの優先度が最も低いものです。
発行済みを選択できます。 各メッセージには、
メッセージの重大度(F、E、W、N、I、またはDのいずれか)
致命的:無条件かつ即時のプログラム終了を必要とする状態。
エラー:適切なプログラム処理を妨げる状態。 通常、プログラムは
終了しました(オプション-sを参照)。
警告:
何かが正しく機能しなかったか、さらに正しい状態にあります
処理は保証できませんが、可能かもしれません。
注意:
プログラムの興味深い行動、例えば監督のため ソキャット ある種の
サーバーモード。
情報:プログラムの機能の説明と、おそらくそれが発生する理由。 監視することができます
ファイル記述子のライフサイクル。
デバッグ:プログラムの動作、すべてのシステムまたはライブラリの呼び出し、およびそれらの説明
結果。
ログメッセージは、stderr、ファイル、またはsyslogに書き込むことができます。
出口で、 ソキャット EOFまたは非アクティブタイムアウトが原因で終了した場合はステータス0を返し、
エラーの場合は正の値、致命的なエラーの場合は負の値。
onworks.net サービスを使用してオンラインで procan を使用する