close

關於Phantun

Phantun是一款功能強大的輕量級UDP轉TCP混淆工具,該工具可以將UDP數據包混淆成TCP連接,旨在以最小的處理和封裝開銷實現最大的性能。該工具通常用於UDP被阻止/限制但TCP被允許通過的環境。

Phantun可以將UDP數據包流轉換成經過模糊/混淆處理的TCP數據包流。Phantun使用的TCP堆棧可以通過大多數L3/L4有狀態/無狀態防火牆/NAT設備,但無法通過L7代理。

Phantun工具採用了純Rust開發,並且經過了大量的版本迭代和功能優化,可以在多核系統上進行快速擴展,並且消耗資源也非常少。

工具數據流/架構

工具下載

廣大研究人員可以使用下列命令將該項目源碼克隆至本地:

git clone https://github.com/dndx/phantun.git

工具使用

對於下面的示例,做如下假設:

假設Phantun服務器在端口4567(服務器的--local選項)偵聽傳入的Phantun客戶端連接,並在127.0.0.1:1234(服務器的--remote選項)將UDP數據包轉發到UDP服務器。

假設Phantun客戶端在127.0.0.1:1234(客戶端的--local選項)監聽傳入的UDP數據包,並在10.0.0.1:4567(客戶端的--remote選項)連接到Phantun服務器。

Phantun為客戶端和服務器創建TUN接口。對於客戶端,Phantun默認為自己分配IP地址192.168.200.2;對於服務器,它默認為自己分配IP地址192.168.201.2。

使用樣例1、啟用內核IP轉發

編輯「/etc/sysctl.conf」,添加「net.ipv4.ip_forward=1」,然後運行下列命令:

sudo sysctl -p /etc/sysctl.conf

2、添加所需防火牆規則

客戶端

使用nftable:

table inet nat { chain postrouting { type nat hook postrouting priority srcnat; policy accept; iifname tun0 oif eth0 masquerade }}

使用iptable:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

服務器端

使用nftable:

table ip nat { chain prerouting { type nat hook prerouting priority dstnat; policy accept; iif eth0 tcp dport 4567 dnat to 192.168.201.2 }}

使用pitable:

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 4567 -j DNAT --to-destination 192.168.201.2

3、運行Phantun代碼(非root權限,可選)

以root用戶身份運行面向網絡的應用程序是不明智的,因此Phantun 支持以非root用戶權限運行,並帶有cap_net_admin功能:

sudo setcap cap_net_admin=+pe phantun_serversudo setcap cap_net_admin=+pe phantun_client

4、開啟Phantun守護進程

提示:使用-h參數運行Phantun後可以查看該工具支持的所有參數選項。

服務器端

注意:4567是Phantun監聽的TCP端口,然後對應之前指定的DNAT規則。127.0.0.1:1234則是要連接的UDP服務器:

RUST_LOG=info /usr/local/bin/phantun_server --local 4567 --remote 127.0.0.1:1234

或者,使用--remote指定主機名稱:

RUST_LOG=info /usr/local/bin/phantun_server --local 4567 --remote example.com:1234

客戶端

注意:127.0.0.1:1234是Phantun需要監聽的UDP地址和端口。10.0.0.1:4567則是要連接的Phantun服務器:

RUST_LOG=info /usr/local/bin/phantun_client --local 127.0.0.1:1234 --remote 10.0.0.1:4567

或者,使用--remote指定主機名稱:

RUST_LOG=info /usr/local/bin/phantun_client --local 127.0.0.1:1234 --remote example.com:4567

許可證協議

本項目的開發與發布遵循Apache2.0開源許可證協議。

最新發布版本

https://github.com/dndx/phantun/releases/tag/v0.3.2

項目地址

https://github.com/dndx/phantun

參考資料

https://docs.rs/fake-tcp

https://github.com/wangyu-/udp2raw-tunnel

https://opensource.org/licenses/MIT



精彩推薦





arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()