摘要
在内网开发中,由于出于公司安全考虑,部分IP192.168.0.100
访问只能针对固定IP192.168.0.200
开放,此时我需要通过我的电脑192.168.0.300
去访问,由于未对我电脑IP192.168.0.300
授权,导致我访问不到,此时,我可以通过端口访问192.168.0.200
转发去访问192.168.0.100
windows使用方法
转发端口
shell
# 如果需要通过IP访问,将 127.0.0.1 改为IP, 此时就可以通过IP:80访问
# 127.0.0.1 不能通过IP访问,如果想通过IP访问,将127.0.0.1 改为 192.168.0.200(即自己本机IP)
netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=80 connectaddress=192.168.0.100 connectport=8080
解释:
listenaddress:监听地址,listenport:监听端口
connectaddress:链接地址,connectport:链接端口
查询:
shell
# 查询目前转发的IP
netsh interface portproxy show all
删除配置:
shell
# 删除转发到本地的 127.0.0.1:80
netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=80
mac使用方法
下载
socat 下载 (socat-1.8.0.0.tar.gz )
安装
shell
# ./configure --prefix= /安装路径
./configure --prefix=/Users/abraham/software/socat-1.8.0.0
make
sudo make install
验证
shell
socat -V
which socat
使用
TCP-LISTEN:本地端口
:指定在本地监听的端口。fork
:允许多个连接到该端口的客户端。TCP:目标地址:目标端口
:指定转发的目标地址和端口。
shell
# socat TCP-LISTEN:本地端口,fork TCP:目标地址:目标端口
# socat TCP-LISTEN:8888,fork TCP:远程服务器地址:8080
socat TCP-LISTEN:8888,fork TCP:192.168.8.186:10086
此时:便可以通过 http://localhost:8888 来访问到 192.168.8.186:10086
局域网通过 本机的IP:8888 也可以访问到该路径
配置环境变量
shell
vim ~/.bash_profile
shell
## 设置socat环境变量 /Users/abraham/software/socat-1.8.0.0/bin 更换为安装路径
export PATH="/Users/abraham/software/socat-1.8.0.0/bin:$PATH"
shell
# 刷新环境变量使其生效
source ~/.bash_profile