前言

你是否遇到过这样的场景,服务器不能上网,然而又须要装置某个软件,面对如蛛网般芜杂的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装置软件。

  1. 用户电脑上开启一个http代理

    ./4dnat -proxy http 1080
  2. 跳板机器上应用监听模式监听两个端口,用于替换数据

    ./4dnat -listen 10000 10001
  3. 指标机器上应用监听模式监听两个端口,用于替换数据

    ./4dnat -listen 20000 20001
  4. 用户电脑上应用代理人模式被动连贯两个指标地址,用于替换数据

    ./4dnat -agent 127.0.0.1:1080 172.16.0.30:10000
  5. 跳板机器上应用代理人模式被动连贯两个指标地址,用于替换数据

    ./4dnat -agent 127.0.0.1:10001 10.1.0.40:20000
  6. 指标机器上批改代理

    cat <<EOF >> /etc/profilehttp_proxy=http://127.0.0.1:20001https_proxy=http://127.0.0.1:20001export http_proxy https_proxyEOFsource /etc/profile
  7. 指标机器上测试拜访互联网

    curl https://typesafe.cn

最初奉上我的项目地址 https://github.com/dushixiang...

本文首发我的微信公众号:我在对面的角落