在 Linux 中,可以使用 iptables
或 socat
等工具进行端口转发
方法 1:使用 iptables 进行端口转发
-
首先,确保你的系统已安装了
iptables
。在大多数 Linux 发行版中,它通常是默认安装的。 -
打开终端,输入以下命令以创建一个新的 iptables 规则,将本地端口 8080 转发到远程服务器的端口 80:
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination <远程服务器IP>:80 sudo iptables -t nat -A POSTROUTING -j MASQUERADE
将 <远程服务器IP>
替换为实际的远程服务器 IP 地址。
- 保存 iptables 规则。这可以通过以下命令完成:
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
注意:这可能需要 root 权限。如果需要,请在命令前加上 sudo
。
- 为了确保在系统重启后这些规则仍然生效,你需要安装
iptables-persistent
:
sudo apt-get install iptables-persistent
在安装过程中,系统会提示你是否要保存当前的 iptables 规则。选择“是”以确保规则在系统重启后仍然生效。
方法 2:使用 socat 进行端口转发
- 在终端中输入以下命令以安装
socat
(如果尚未安装):
对于基于 Debian 的系统(如 Ubuntu):
sudo apt-get install socat
对于基于 RHEL 的系统(如 CentOS):
sudo yum install socat
- 使用以下命令创建一个端口转发,将本地端口 8080 转发到远程服务器的端口 80:
socat TCP-LISTEN:8080,fork TCP::<远程服务器IP>:80
将 <远程服务器IP>
替换为实际的远程服务器 IP 地址。
现在,当有人访问你的本地服务器上的 8080 端口时,请求将被转发到远程服务器的 80 端口。