
我正處於一個與優先連接埠轉送相關的小型專案的研究階段。
我有一組客戶端試圖存取帶有一些無線電的終端伺服器。
問題是,如果兩個客戶端訪問終端伺服器上的相同目標端口,我會在錯誤的客戶端上看到垃圾資料。
假設客戶端 A 從目標連接埠請求某些內容,但用戶端 B 已經在請求某些內容,則該連接埠上終端伺服器後面的裝置會回應其排隊等待發送的資料。
請注意,兩個客戶端的目標連接埠相同。
我想優先考慮其中一台伺服器,因此我想在 2 個客戶端和終端伺服器之間實作基於 Linux 的路由器應用程式。每個客戶端都會存取不同的端口,但優先客戶端在開始通訊時將被轉發。另一個會被阻止、阻止、停止或其他什麼。
我可能已經搶先開發了一個小型 python 應用程序,該應用程式偵聽 2 個不同的連接埠並將“優先”連接埠轉發到終端伺服器。阻止「非優先」連接埠的轉發,直到優先連接埠中發生一定數量的無通訊。
我讀過有關 iptables、一些 NATing、socat、一點 QoS 等的內容,但我似乎找不到解決我問題的方法。
我不是網路專家,並且已經使用 Linux 大約 2 年了,但我從未對 TCP/ip 路由/轉送場景做過太多工作,所以我想知道是否有一些東西可以提供幫助我優先考慮一個連接埠轉送而不是另一個端口,這比自訂python 應用程式更有效。
感謝您的任何反饋。
這是一個小圖片,供我嘗試做的事情參考:
答案1
我相信您可以完成您想做的事情:
據我所知,您將不得不重新考慮這兩個終端是如何連接的。我相信 TMUX 可以作為服務於兩個終端客戶端的應用程式處於中間位置。某些東西必須多路復用串行連接,這是無法迴避的。
這裡有一些有用的 SOCAT 指令
我相信 TMUX 將是您最好的選擇,這是tmux 入門指南
我列出了 GNU 螢幕,因為它看起來可能是有用在這種情況下。
我還在 serverfault 上發現了與您的問題有些相似的問題。
https://serverfault.com/questions/797397/connect-two-ttys-via-tcp-ip