Linux埠轉發的幾種常用方法
在一些實際的場景裡,我們需要透過利用一些埠轉發工具,比如系統自帶的 行工具或第三方小軟體,來繞過網路訪問限制觸及目標系統。本文總結了 埠轉發的一些常用方法 |
1. SSH 埠轉發
SSH 提供了一個非常有意思的功能,就是埠轉發,它能夠將其他 TCP 埠的網路資料透過 SSH 連結來轉發,並且自動提供了相應的加密及解密服務。
(1) 本地埠轉發
ssh -fgN -L 2222:localhost:22 localhost
(2) 遠端埠轉發
ssh -fgN -R 2222:host1:22 localhost
(3) 動態轉發
ssh -fgN -D 12345 root@host1
2. iptables 埠轉發
7.0 以下使用的是iptables,可以透過iptables實現資料包的轉發
(1) 開啟資料轉發功能
vi /etc/sysctl.conf #增加一行 net.ipv4.ip_forward=1 //使資料轉發功能生效 sysctl -p
(2)將本地的埠轉發到本機埠
iptables -t nat -A PREROUTING -p tcp --dport 2222 -j REDIRECT --to-port 22
(3)將本機的埠轉發到其他機器
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 埠轉發
CentOS 7.0以上使用的是firewall,透過 行配置實現埠轉發。
(1) 開啟偽裝IP
firewall-cmd --permanent --add-masquerade
(2) 配置埠轉發,將到達本機的12345埠的訪問轉發到另一臺伺服器的22埠。
firewall-cmd --permanent --add-forward-port=port=12345:proto=tcp:toaddr=192.168.172.131:toport=22
(3) 重新載入,使其失效
firewall-cmd --reload
4. rinetd 埠轉發
rinetd是一個輕量級TCP轉發工具,簡單配置就可以實現埠對映/轉發/重定向。
(1) 原始碼下載
wget
(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) 啟動轉發
rinetd -c /etc/rinetd.conf
5. ncat 埠轉發
netcat(簡稱nc),一個簡單而有用的工具,這裡介紹一種使用netcat實現埠轉發的方法。
(1) 安裝ncat
yum install nmap-ncat -y
(2) 監聽本機 9876 埠,將資料轉發到 192.168.172.131的 80 埠
ncat --sh-exec "ncat 192.168.172.131 80" -l 9876 --keep-open
6. socat 埠轉發
socat是一個多功能的網路工具,使用socat進行埠轉發。
(1) socat安裝
yum install -y socat
(2) 在本地監聽12345埠,並將請求轉發至192.168.172.131的22埠。
socat TCP4-LISTEN:12345,reuseaddr,fork TCP4:192.168.172.131:22
7. portmap 埠轉發
Linux 版的lcx,內網埠轉發工具。
(1) 下載地址:
(2) 監聽本地1234埠,轉發給192.168.172.131的22埠
/portmap -m 1 -p1 1234 -h2 192.168.172.131 -p2 22
8. portfwd埠轉發
portfwd是meterpreter中內建的功能,也提供了單機版,用於TCP/UDP埠轉發服務
Github 專案地址:
(1) 下載編譯
git clone .git cd portfwd/src make
(2)將本地的12345埠轉發到192.168.172.131:22
./tcpfwd 0.0.0.0:12345 192.168.172.131:22
9. NATBypass埠轉發
一款lcx(htran)在golang下的實現
Gihub專案地址:
內網主機主動連線外網主機打通隧道:
- 在目標機器上執行:nb -slave 127.0.0.1:3389 公網IP:51
- 在公網的機器執行:nb -listen 51 3340
- 在公網主機上連線 127.0.0.1:3340,即可連線上內網機器的3389埠。
原文地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2725695/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- iOS 開發中 runtime 常用的幾種方法iOS
- Linux常用幾種shellLinux
- linux中後臺執行程式常用的幾種方法Linux行程
- iframe跨域的幾種常用方法跨域
- 埠轉發方法
- Linux幾種轉發請求方案Linux
- css中常用的幾種居中方法CSS
- 幾種常用的SQL優化工具及方法SQL優化
- Python教程: 反射及常用的幾種方法Python反射
- Linux/CentOS檢視埠被哪個程式佔用的幾種方法總結LinuxCentOS
- Linux IPTABLES埠轉發Linux
- Linux安裝mysql的幾種方法LinuxMySql
- JS常用判斷空對像的幾種方法JS
- 常用埠列表(轉)
- 幾種刪除Linux目錄的方法Linux
- Linux安裝軟體的幾種方法Linux
- Linux-Windows 埠轉發LinuxWindows
- 常用的幾種專案衝突管理的解決方法
- jsp自動跳轉的幾種方法JS
- Mysql 檢視埠號的幾種方式MySql
- Mysql檢視埠號的幾種方式MySql
- [分享]iOS開發-UIAlertView的幾種觸發方法iOSUIView
- java程式轉為exe幾種方法Java
- 幾個Linux中檔案查詢常用技術和方法(轉)Linux
- [譯] 降維技術中常用的幾種降維方法
- 關於python單例的常用幾種實現方法Python單例
- 檢視SQL執行計劃的幾種常用方法YQSQL
- Markdown常用的幾種語法
- 常用的jQuery事件有幾種?jQuery事件
- 幾種常用的排序程式碼排序
- Linux檢視檔案大小的幾種方法Linux
- 漢化Linux的一種方法(轉)Linux
- 幾種常用BroadcastReceiverAST
- Flutter工具:Dart中幾種常用的Json轉Object方式FlutterDartJSONObject
- GCD常用的幾個方法GC
- Form開發中元件控制的幾個常用方法ORM元件
- 伺服器實現埠轉發的N種方式伺服器
- 程式開發中常用的10種演算法,你用過幾種?演算法