繞過NAT
https://wiki.termux.com/wiki/Bypassing_NAT#Ngrok
IPv4地址空間有限,因此為了將許多設備連接到Internet,正在使用一種特殊的機制。Internet服務提供商通常在幾個人之間共享相同的IP地址。WiFi路由器還在多個連接的設備之間共享單個外部IP地址。這是通過NAT實現的,具體取決於您的網絡設置,它可以是本地的或運營商級的。
如果在NAT之後,默認情況下無法從Internet訪問您的設備。如果您處於運營商級NAT下或無法修改路由器設置(端口轉發),請閱讀以下解決方案,以了解如何使設備可從Internet訪問。
如果您已經訂閱了移動運營商的靜態IP服務,或者能夠在WiFi路由器設置中設置端口轉發,則不需要此設置。
托爾
通過Tor訪問設備是最安全,最有效的方法-提供強大的端到端加密(洋蔥服務不使用“退出”節點),虛擬端口(例如80個無根端口),您的服務將不可見在普通的互聯網上。
但是,此方法需要設置Tor Onion Service。
安裝所需的軟件包
主要包裝是tor。通過運行以下命令進行安裝:
pkg安裝程序
您可能需要安裝`proxychains-ng`來訪問Tor網絡:
pkg install proxychains-ng
自Android 8起,軟件包“ torsocks”可能無法正常工作。
設置洋蔥服務
您將必須修改tor($PREFIX/etc/tor/torrc
)的默認配置文件。這是配置SSH洋蔥服務的示例,用此內容覆蓋torrc文件:
##啟用TOR SOCKS代理 襪子端口127.0.0.1:9050 ##隱藏服務:SSH HiddenServiceDir /data/data/com.termux/files/home/.tor/hidden_ssh HiddenServicePort 22 127.0.0.1:8022
然後,需要創建一個目錄,其中將存儲有關“隱藏服務”的信息:
mkdir -p〜/ .tor / hidden_ssh
現在您可以在console中執行tor
。如果啟動成功,則可以獲取洋蔥服務主機名:
貓〜/ .tor / hidden_ssh /主機名
輸出應如下所示: g3yv3tvqrbow7koz.onion
訪問您的服務
首先,請確保客戶端設備“ tor”正在運行,並且您具有用於訪問Tor網絡的所有必要軟件(在本例中為“ proxychains-ng”軟件包)。
要訪問上一步中創建的洋蔥服務,請運行以下命令:
proxychains4 ssh g3yv3tvqrbow7koz.onion
如果一切正常,輸出應如下所示:
無法確定主機“ g3yv3tvqrbow7koz.onion(127.42.42.0)”的真實性。 ED25519密鑰指紋為SHA256:WGualHEq7SJdvVeXgy8a + btPQCd7uxTeXjlWdHHLwLc。 您確定要繼續連接(是/否)嗎?
記住,`tor`應該同時在(客戶端/服務器)兩端運行,否則會出現連接錯誤。您可以按照上面示例中SSH所示的相同方式配置其他服務器(例如Nginx)。
了解有關洋蔥服務的更多信息
您可以在torproject.org上找到有關Onion Services和其他與Tor相關的東西的更好的解釋。
恩格羅克
主頁:https : //ngrok.com/
服務條款:https://ngrok.com/tos
定價:https : //ngrok.com/pricing
免費套餐:每分鐘40個連接,最多4條隧道。
Termux開發人員對此服務的可用性,可靠性和安全性不承擔任何責任!
通過SSH使用Ngrok
您可能要使用Ngrok而不安裝其源代碼不開放的Termux客戶端。請參閱以下說明進行設置,以便能夠使用OpenSSH建立隧道。
假定您至少已經有免費計劃的Ngrok帳戶。
1.安裝OpenSSH。
pkg install openssh
2.生成一對私鑰和公鑰。如果您已經有了密鑰,請跳過。
ssh-keygen -t rsa -b 2048 -f〜/ .ssh / id_rsa
3.轉到https://dashboard.ngrok.com/auth/ssh-keys/new,然後將公共密鑰粘貼到文本字段中。然後點擊“添加”。您的SSH密鑰應分配給您的帳戶。
4.現在啟動服務器,然後運行next命令進行端口轉發。
ssh -R 0:localhost:$ {PORT} tunnel.us.ngrok.com tcp $ {PORT}
其中$ {PORT}是要公開的本地端口。查看OpenSSH端口轉發的示例:
〜$ ssh -R 0:localhost:8022 tunnel.us.ngrok.com tcp 8022 已分配端口10585以遠程轉發到localhost:8022 ngrok(通過SSH)@inconshreveable(Ctrl + C退出) 帳戶<CENSORED>(計劃:免費) 區域我們 轉發tcp://2.tcp.ngrok.io:10585
請注意,Ngrok TCP轉發將為免費帳戶分配一個隨機端口。
有關此主題的更多示例,請訪問https://ngrok.com/docs#ssh-gateway-examples。
使用Ngrok客戶端
轉到Ngrok下載頁面,然後選擇具有適合您的設備的體系結構的二進製文件。Termux不接受Ngrok的包裝要求。它是封閉源,並且始終不提供本機Android OS二進製文件,因此請按照以下說明進行安裝並使其正常運行。
在這些說明中,將假定您的體系結構是AArch64(又名ARM64)。
1.解壓縮下載的檔案:
解壓縮ngrok-stable-linux-arm64.zip
2.將二進製文件移到正確的位置:
mv ngrok $ PREFIX / bin /
3.設置可執行權限:
chmod + x $ PREFIX / bin / ngrok
4.按照要求/etc/resolv.conf,最新的Ngrok可能無法直接在Termux中工作。如果您的ROM提供了/etc/resolv.conf文件,則可以跳過此步驟和步驟(5)。安裝我們將需要的必要軟件包:
pkg install proot resolv-conf
5.啟動道具。每次要使用Ngrok時,都需要這樣做:
白蟻
6.您需要授權您的Ngrok安裝。假設您已經擁有Ngrok帳戶,並且已經從https://dashboard.ngrok.com/auth/your-authtoken獲得了令牌。通過運行下一個命令來授權安裝:
ngrok authtoken {您的身份驗證令牌}
請記住,如果您的設備不提供/etc/resolv.conf,則必須始終在termux-chroot下運行Ngrok二進製文件。
用法示例
在此示例中,將顯示如何通過Ngrok轉發SSH端口。在繼續之前,請確保已安裝並驗證了Ngrok,否則您將得到錯誤。
在控制台中輸入以下內容:
ngrok tcp 8022
您應該看到類似於以下的輸出:
ngrok by @inconshreveable(Ctrl + C退出) 在線會話狀態 帳戶<CENSORED>(計劃:免費) 版本2.2.8 美國(美國)地區 Web界面http://127.0.0.1:4040 轉發tcp://0.tcp.ngrok.io:13766-> localhost:8022 連接ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00 0.00
在這裡,字符串tcp://0.tcp.ngrok.io:13766
表示Internet上可用服務的URL(在本例中為SSH)。
您可以通過以下方法驗證其是否有效:
ssh -p 13766 0.tcp.ngrok.io
天目
Tmate是共享終端的實用程序。它很容易使用,儘管一旦客戶端斷開連接,它將破壞連接。
可以使用安裝實用程序pkg install tmate
。
用法示例
1.確保所有設備的~/.ssh
目錄中都有SSH密鑰。如果不是,請在每台設備上執行以下操作:
pkg install openssh mkdir〜/ .ssh ssh-keygen -t rsa -f〜/ .ssh / id_rsa
2.在Termux中執行以下命令:
隊友
3.完成上一步後,您應該會在屏幕底部看到帶有鏈接的彩色線條。保存它,因為它是您的連接令牌。看起來像
Bff5fhJquRpO105c3OL62Icfp@fk2.tmate.io
4.在要從其連接到Termux的另一台設備上,運行
ssh Bff5fhJquRpO105c3OL62Icfp@fk2.tmate.io
重要說明:上面顯示的鏈接僅是示例,不應複製粘貼!
留言
張貼留言