
私は優先ポート転送に関連する小規模プロジェクトの研究段階にあります。
背後にいくつかの無線を備えたターミナル サーバーにアクセスしようとしているクライアントのセットがあります。
問題は、2 つのクライアントがターミナル サーバー上の同じターゲット ポートにアクセスすると、間違ったクライアントにゴミデータが表示されることです。
たとえば、クライアント A がターゲット ポートから何かを要求したが、クライアント B がすでに何かを要求していた場合、そのポートのターミナル サーバーの背後にあるデバイスは、送信するためにキューに入れられていたデータで応答します。
ターゲット ポートは両方のクライアントで同じであることに注意してください。
サーバーの 1 つを優先したいので、2 つのクライアントとターミナル サーバーの間に Linux ベースのルーター アプリのようなものを実装します。クライアントはそれぞれ異なるポートにアクセスしますが、優先クライアントは通信を開始すると転送されます。もう 1 つのクライアントはブロック、停止、一時停止などされます。
早まって、2 つの異なるポートをリッスンし、「優先」ポートをターミナル サーバーに転送する小さな Python アプリケーションを開発したかもしれません。優先ポートで一定量の通信が行われなくなるまで、「非優先」ポートの転送をブロックします。
iptables、NATing、socat、QoS などについて読みましたが、私の問題に当てはまるものは見つからないようです。
私はネットワークの専門家ではなく、Linux を約 2 年間使用していますが、TCP/IP ルーティング/転送シナリオについてはあまり行ったことがありませんでした。そのため、ポート転送を他のポート転送よりも優先させるのに役立つ、カスタム Python アプリよりも効率的なものがあるかどうかを知りたいです。
フィードバックをいただければ幸いです。
私がやろうとしていることの参考として、小さな画像を載せておきます。
答え1
あなたがやろうとしていることは、次の方法で達成できると思います:
私の知る限り、これら 2 つの端末の接続方法を再検討する必要があります。TMUX は、2 つのエンド クライアント端末にサービスを提供するアプリとして中間に配置できると思います。シリアル接続を多重化する必要があり、これを回避する方法はありません。
ここにあるいくつかの便利なSOCATコマンド
TMUXが最善の選択肢だと思います。tmux 入門ガイド
GNU screenをリストアップしたのは、役に立つこのシナリオでは。
私も serverfault であなたと似たような質問を見つけました。
https://serverfault.com/questions/797397/connect-two-ttys-via-tcp-ip