方法:1、用SSH端口轉發(fā);2、用iptables端口轉發(fā);3、用firewall端口轉發(fā);4、用rinetd端口轉發(fā);5、用ncat端口轉發(fā);6、用socat端口轉發(fā);7、用portmap端口轉發(fā);8、用portfwd端口轉發(fā)等。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
linux怎樣端口轉發(fā)
1. SSH 端口轉發(fā)
SSH 提供了一個非常有意思的功能,就是端口轉發(fā),它能夠將其他 TCP 端口的網絡數據通過 SSH 鏈接來轉發(fā),并且自動提供了相應的加密及解密服務。
(1) 本地端口轉發(fā)
ssh?-fgN?-L?2222:localhost:22?localhost
(2) 遠程端口轉發(fā)
ssh?-fgN?-R?2222:host1:22?localhost
(3) 動態(tài)轉發(fā)
ssh?-fgN?-D?12345?root@host1
2. iptables 端口轉發(fā).
CentOS 7.0 以下使用的是iptables,可以通過iptables實現(xiàn)數據包的轉發(fā)
(1) 開啟數據轉發(fā)功能
vi?/etc/sysctl.conf???? ??#增加一行?net.ipv4.ip_forward=1? //使數據轉發(fā)功能生效? sysctl?-p
(2)將本地的端口轉發(fā)到本機端口
iptables?-t?nat?-A?PREROUTING?-p?tcp?--dport?2222?-j?REDIRECT?--to-port?22
(3)將本機的端口轉發(fā)到其他機器
iptables?-t?nat?-A?PREROUTING?-d?192.168.172.130?-p?tcp?--dport?8000?-j?DNAT?--to-destination?192.168.172.131:80? iptables?-t?nat?-A?POSTROUTING?-d?192.168.172.131?-p?tcp?--dport?80?-j?SNAT?--to?192.168.172.130? #清空nat表的所有鏈? iptables?-t?nat?-F?PREROUTING
3. firewall 端口轉發(fā)
CentOS 7.0以上使用的是firewall,通過命令行配置實現(xiàn)端口轉發(fā)。
(1) 開啟偽裝IP
firewall-cmd?--permanent?--add-masquerade
(2) 配置端口轉發(fā),將到達本機的12345端口的訪問轉發(fā)到另一臺服務器的22端口。
firewall-cmd?--permanent?--add-forward-port=port=12345:proto=tcp:toaddr=192.168.172.131:toport=22
(3) 重新載入,使其失效
firewall-cmd?--reload
4. rinetd 端口轉發(fā)
rinetd是一個輕量級TCP轉發(fā)工具,簡單配置就可以實現(xiàn)端口映射/轉發(fā)/重定向。
(1) 源碼下載
wget?https://li.nux.ro/download/nux/misc/el7/x86_64/rinetd-0.62-9.el7.nux.x86_64.rpm
(2) 安裝rinetd
rpm?-ivh?rinetd-0.62-9.el7.nux.x86_64.rpm
(3) 編輯配置文件
vi?rinetd.conf?? ????0.0.0.0?1234?127.0.0.1?22
(4) 啟動轉發(fā)
rinetd?-c?/etc/rinetd.conf
5. ncat 端口轉發(fā)
netcat(簡稱nc)被譽為網絡安全界的”瑞士軍刀“,一個簡單而有用的工具,這里介紹一種使用netcat實現(xiàn)端口轉發(fā)的方法。
(1) 安裝ncat
yum?install?nmap-ncat?-y
(2) 監(jiān)聽本機 9876 端口,將數據轉發(fā)到 192.168.172.131的 80 端口
ncat?--sh-exec?"ncat?192.168.172.131?80"?-l?9876??--keep-open
6. socat 端口轉發(fā)
socat是一個多功能的網絡工具,使用socat進行端口轉發(fā)。
(1) socat安裝
yum?install?-y?socat
(2) 在本地監(jiān)聽12345端口,并將請求轉發(fā)至192.168.172.131的22端口。
socat?TCP4-LISTEN:12345,reuseaddr,fork?TCP4:192.168.172.131:22
7. portmap 端口轉發(fā)
Linux 版的lcx,內網端口轉發(fā)工具。
(1) 下載地址:http://www.vuln.cn/wp-content/uploads/2016/06/lcx_vuln.cn_.zip
(2) 監(jiān)聽本地1234端口,轉發(fā)給192.168.172.131的22端口
/portmap?-m?1?-p1?1234?-h2?192.168.172.131?-p2?22
8. portfwd端口轉發(fā)
portfwd是meterpreter中內置的功能,也提供了單機版,用于TCP/UDP端口轉發(fā)服務
Github 項目地址:https://github.com/rssnsj/portfwd
(1) 下載編譯
git clone https://github.com/rssnsj/portfwd.git?
cd portfwd/src?
make?
(2)將本地的12345端口轉發(fā)到192.168.172.131:22
./tcpfwd?0.0.0.0:12345?192.168.172.131:22
9. NATBypass端口轉發(fā)
一款lcx(htran)在golang下的實現(xiàn)
Gihub項目地址:https://github.com/cw1997/NATBypass
內網主機主動連接外網主機打通隧道:
在目標機器上執(zhí)行:nb -slave 127.0.0.1:3389 公網IP:51
在公網的機器執(zhí)行:nb -listen 51 3340
在公網主機上連接 127.0.0.1:3340,即可連接上內網機器的3389端口。
相關推薦:《Linux視頻教程》