前言
你是否遇到过这样的场景,服务器不能上网,然而又须要装置某个软件,面对如蛛网般芜杂的 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/profile http_proxy=http://127.0.0.1:20001 https_proxy=http://127.0.0.1:20001 export http_proxy https_proxy EOF source /etc/profile
-
在 指标机器 上测试拜访互联网
curl https://typesafe.cn
最初奉上我的项目地址 https://github.com/dushixiang…
本文首发我的微信公众号:我在对面的角落