场景1
主机1可以访问 10.10.11.29:80
但是主机2访问不到 ,主机2可以访问到主机1的ip
主机1执行
1 | sudo socat TCP-LISTEN:8080,fork TCP:10.10.11.29:80 |
主机1的信息
1 | 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 |
意思是10.10.11.29:80
fork 到本机的172.25.105.124:8080
,就是你访问ip:8080 也就是访问10.10.11.29:80
1 | route add 10.10.11.29 mask 255.255.255.255 172.25.105.124 |
动态端口转发
1 | sudo socat TCP-LISTEN:8080,fork SOCKS5:127.0.0.1:lantern.htb:80,socksport=1080 |
如果您希望使用简单的工具并通过配置文件来实现多端口代理,以下是几种适合的工具:
1. redir
(简单的端口转发工具)
虽然 redir
本身没有直接支持多个端口代理的功能,但您可以通过配置文件或脚本的方式来启动多个端口转发。可以创建一个脚本,像这样:
bash
复制代码
#!/bin/bash # 配置多个端口转发 redir --lport=80 --caddr=10.10.11.29 --cport=80 & redir --lport=8080 --caddr=10.10.11.29 --cport=8080 & redir --lport=443 --caddr=10.10.11.29 --cport=443 &
这种方法的优点是非常简单,但仍然需要通过脚本来配置多个端口。
2. rinetd
(配置文件方式)
rinetd
是一个非常适合通过配置文件来管理多个端口转发的工具。您可以创建一个配置文件 /etc/rinetd.conf
,内容如下:
bash
复制代码
# 转发配置 0.0.0.0 80 10.10.11.29 80 0.0.0.0 8080 10.10.11.29 8080 0.0.0.0 443 10.10.11.29 443
配置好后,您只需要启动 rinetd
:
bash
复制代码
sudo rinetd
1 |