在 Linux 中,可以使用 iptables
或 socat
等工具進(jìn)行端口轉(zhuǎn)發(fā)
方法 1:使用 iptables 進(jìn)行端口轉(zhuǎn)發(fā)
首先,確保你的系統(tǒng)已安裝了 iptables
。在大多數(shù) Linux 發(fā)行版中,它通常是默認(rèn)安裝的。
打開(kāi)終端,輸入以下命令以創(chuàng)建一個(gè)新的 iptables 規(guī)則,將本地端口 8080 轉(zhuǎn)發(fā)到遠(yuǎn)程服務(wù)器的端口 80:
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination <遠(yuǎn)程服務(wù)器IP>:80
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
將 <遠(yuǎn)程服務(wù)器IP>
替換為實(shí)際的遠(yuǎn)程服務(wù)器 IP 地址。
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
注意:這可能需要 root 權(quán)限。如果需要,請(qǐng)?jiān)诿钋凹由?sudo
。
iptables-persistent
:sudo apt-get install iptables-persistent
在安裝過(guò)程中,系統(tǒng)會(huì)提示你是否要保存當(dāng)前的 iptables 規(guī)則。選擇“是”以確保規(guī)則在系統(tǒng)重啟后仍然生效。
方法 2:使用 socat 進(jìn)行端口轉(zhuǎn)發(fā)
socat
(如果尚未安裝):對(duì)于基于 Debian 的系統(tǒng)(如 Ubuntu):
sudo apt-get install socat
對(duì)于基于 RHEL 的系統(tǒng)(如 CentOS):
sudo yum install socat
socat TCP-LISTEN:8080,fork TCP::<遠(yuǎn)程服務(wù)器IP>:80
將 <遠(yuǎn)程服務(wù)器IP>
替換為實(shí)際的遠(yuǎn)程服務(wù)器 IP 地址。
現(xiàn)在,當(dāng)有人訪問(wèn)你的本地服務(wù)器上的 8080 端口時(shí),請(qǐng)求將被轉(zhuǎn)發(fā)到遠(yuǎn)程服務(wù)器的 80 端口。