Linux 配置vim/**********************************************/Vim 是最重要的編輯器之一,主要有下麵幾個優點。1.可以不使用滑鼠,完全用鍵盤操作。2.系統資源占用小,打開大文件毫無壓力。3.鍵盤命令變成肌肉記憶以後,操作速度極快。4.伺服器默 ...
內網穿透工具
github: https://github.com/sazima/proxynt
原理
特性
- 隨時隨地打開瀏覽器管理埠映射
- 公網伺服器和內網客戶端之間使用 WebSocket 加密傳輸
- 依賴少, 使用 pip一鍵安裝
- 穩定, 自動重連, 已在生產環境中使用
常用場景
- 在家托管網站伺服器
- 管理物聯網設備
安裝
pip install proxynt
使用
客戶端
# 查看幫助
nt_client --help
# 啟動客戶端
nt_client -c config_c.json
服務端
# 查看幫助
nt_server --help
# 啟動服務端
nt_server -c config_s.json
服務端ui
管理頁面路徑為websocket路徑+/admin,
比如
http://192.168.9.224:18888/websocketpath/admin
示例, 通過 SSH 訪問內網機器
假設公網機器的ip是 192.168.9.224
1. 在公網機器上配置config_s.json
{
"port": 18888,
"password": "helloworld",
"path": "/websocket_path",
"admin": {
"enable": true,
"admin_password": "new_password"
}
}
說明:
port
: 監聽埠password
: 連接密碼path
: websocket路徑admin
: 管理頁配置(非必須)admin.enable
: 是否啟用管理頁admin.admin_password
: 管理密碼
然後啟動:
nt_server -c config_s.json
2. 在需要被訪問的內網電腦上配置config_c.json
配置config_c.json
{
"server": {
"port": 18888,
"host": "192.168.9.224",
"https": false,
"password": "helloworld",
"path": "/websocket_path"
},
"client_name": "我家裡的小電腦",
"client": [
{
"name": "ssh1",
"remote_port": 12222,
"local_port": 22,
"local_ip": "127.0.0.1"
}
]
}
說明:
server
: 要連接的伺服器埠, ip, 是否是https, 密碼, websocket路徑client_name
: 客戶端名稱client
: 這裡是將本機的22埠映射到伺服器的12222埠上
然後啟動:
nt_client -c config_c.json
3. ssh 連接:
ssh -oPort=12222 [email protected]
打開管理頁面:
http://192.168.9.224:18888/websocketpath/admin
完整配置說明
- 客戶端 config_c.json
{
"server": { // 要連接的服務端配置
"port": 18888, // 埠
"host": "192.168.9.224", // 端ip
"https": false, //服務端是否啟動https
"password": "helloworld", // 密碼
"path": "/websocket_path" // websocket 路徑
},
"client": [ // 轉發的配置列表
{
"name": "ssh",
"remote_port": 1222,
"local_port": 22,
"local_ip": "127.0.0.1"
},
{
"name": "mongo",
"remote_port": 1223,
"local_port": 27017,
"local_ip": "127.0.0.1"
}
],
"client_name": "ubuntu1", // 客戶端名稱, 要唯一
"log_file": "/var/log/nt/nt.log" // 日誌路徑
}
- 服務端 config_c.json
{
"port": 18888, // 監聽埠
"password": "helloworld", // 密碼
"path": "/websocket_path", // websocket路徑
"log_file": "/var/log/nt/nt.log", // 日誌路徑
"admin": {
"enable": true, // 是否啟用管理頁
"admin_password": "new_password" // 管理頁密碼
}
}