
我有一個伺服器,我希望我大學的學生能夠訪問它。然而,由於某種原因,大學網路斷開了連接,並且由於這是一項娛樂服務,儘管不被禁止,但管理員不會投入時間來解決問題。
我已經讓它與hamachi 和openvpn 一起使用(以iptables 的安全方式,因此只有Minecraft 連接埠可訪問,並且只有伺服器IP 通過VPN 路由),但是兩者都需要用戶安裝額外的軟體,並給我的電腦帶來額外的負載伺服器加密一切...
因此,我正在尋找一種不需要額外軟體並且理想情況下對伺服器施加最小額外負載的選項。
我可以在我的 Linux 伺服器的 nat 路由器上轉發端口,並可以在伺服器上安裝軟體。我想確保用戶無法存取我的區域網,並且只能連接到伺服器上的單一連接埠。我還想阻止從伺服器到客戶端的任何連接。
我絕對不希望我的伺服器成為其他任何東西的代理,例如其他 Minecraft 伺服器、Minecraft 更新等。
我見過關於socks/ssh代理的東西,但這些似乎試圖隧道用戶所做的一切,而且我看不出有什麼辦法在我的伺服器上對其進行防火牆(例如,它不會創建像ham0或tun0這樣的介面)
答案1
用戶不可避免地必須在自己的電腦上安裝應用程式作為客戶端來連接到隧道。
我知道與免費SSHd(在 Windows 上)您可以控制幾乎所有您希望用戶在伺服器上訪問的內容,也許您可以添加一個 Windows 伺服器作為您擁有權利的網路基礎設施上的中間人,但我不是確定這會對您的表現產生多麼嚴重的影響。
我還不知道有什麼工具可以讓你在 Linux 上做到這一點,但我也只是一個偶爾的 Linux 用戶。
答案2
假設您的服務位於大學網路之外,問題是 Minecraft 連接埠未透過大學防火牆開放。
因此,只要大學網路不會透過檢查實際資料包和阻止遊戲資料包來阻止人們,您就不需要搞亂 VPN。
您所需要做的就是將路由器設定為 NAT(嚴格來說,它是 PAT,連接埠位址轉換)。從互聯網方面,您需要允許一個眾所周知的連接埠。 8080 可能會起作用,但在非常嚴格的網路上,您可能只允許使用 80 和 443。現在,您的公用 IP 位址和所選連接埠與私人 IP 位址和不同連接埠之間存在連結。路由器負責一切。
大學網路上的使用者需要配置 Minecraft 以使用公共連接埠連接到您的公共 IP 位址,例如:
publicaddress:8080
在這裡,我直接傳遞標準端口,但您可能希望將第一個端口號(“外部端口”)更改為 8080 或您需要的任何端口號。
更新:
從您的評論中,您已經澄清大學用戶可以連接到您的伺服器,但他們的會話稍後會下降。透過 VPN 連線時不會發生這種情況。這表示大學的過濾服務正在標記流量並對連接進行某些操作。
因此VPN是最好的選擇。檢查您的路由器文檔,看看它是否可以充當 VPN 端點。如果它支援 PPTP 之類的東西,那麼您可以對其進行設置,並向人們提供有關從他們的電腦設定 PPTP VPN 的說明。
如果您的路由器無法做到這一點,那麼您就沒有太多選擇。外部(可能是付費的)VPN 服務或本地網路上充當 VPN 伺服器的電腦。 @safjrz 提到了 FreeSSHd,以及我過去出於類似目的經常使用的 WinSSHd。使用者可以執行 WinSSHd 來建立基於 SSH 的傳出 VPN,它們連接到網路上的 SSH 伺服器,如果您使用 Windows PC,則該伺服器也可能來自 WinSSHd;如果使用 Linux,則可能直接透過 SSH。