前言
你是否遇到过这样的场景,服务器不能上网,然而又须要装置某个软件,面对如蛛网般芜杂的rpm包依赖关系,放弃或者是最好的抉择,这样你就不用再为无奈实现工作而苦楚又烦恼。
然而明天,你有了一个更好的抉择。
4DNAT
4DNAT取名源自4和DNAT。这个工具工作在OSI模型的第四层传输层,同时4和for谐音,意为专门为指标地址转换而服务的工具。4DNAT应用go语言开发,具备人造的跨平台性,并且齐全应用go规范库开发,没有任何的第三方依赖,编译之后只有一个二进制可执行文件。它有4种工作模式:
转发模式
承受两个参数,监听端口和指标地址,在监听端口接管到申请后会被动连贯指标地址,示例:
./4dnat -forward 2222 192.168.1.100:22
监听模式
承受两个参数,监听端口1和监听端口2,并替换两个端口接管到的数据,示例:
./4dnat -listen 10000 10001
代理人模式
承受两个参数,指标地址1和指标地址2,启动后会被动连贯这两个指标地址,并替换两个端口接管到的数据,示例:
./4dnat -agent 127.0.0.1:10000 127.0.0.1:22
http/https代理模式
承受两个参数或四个参数,代理类型、监听端口、证书门路和私钥门路,示例:
http代理
./4dnat -proxy http 1080
https代理
./4dnat -proxy https 1080 server.crt server.key
应用场景
场景一
冀望能够在用户电脑上间接拜访指标服务器上的3306端口,跳板机器是一台Windows机器,没方法做ssh端口转发。
单向虚线箭头示意能够单向拜访,反之不行。
应用4DNAT在跳板机器上执行如下命令做端口转发
# 本地监听3307端口,接管到申请后被动连贯10.1.0.40的3306端口./4dnat -forward 3307 10.1.0.40:3306
在用户电脑上拜访172.16.0.30:3307即等同于拜访10.1.0.40:3306,于是就能够在用户电脑欢快的拜访指标机器上的服务啦。
场景二
冀望指标指标机器能够上网,如应用yum装置软件。
在用户电脑上开启一个http代理
./4dnat -proxy http 1080
在跳板机器上应用监听模式监听两个端口,用于替换数据
./4dnat -listen 10000 10001
在指标机器上应用监听模式监听两个端口,用于替换数据
./4dnat -listen 20000 20001
在用户电脑上应用代理人模式被动连贯两个指标地址,用于替换数据
./4dnat -agent 127.0.0.1:1080 172.16.0.30:10000
在跳板机器上应用代理人模式被动连贯两个指标地址,用于替换数据
./4dnat -agent 127.0.0.1:10001 10.1.0.40:20000
在指标机器上批改代理
cat <<EOF >> /etc/profilehttp_proxy=http://127.0.0.1:20001https_proxy=http://127.0.0.1:20001export http_proxy https_proxyEOFsource /etc/profile
在指标机器上测试拜访互联网
curl https://typesafe.cn
最初奉上我的项目地址 https://github.com/dushixiang...
本文首发我的微信公众号:我在对面的角落