日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

云主機上運行 nps

創建映射目錄

mkdir -p ~/docker/nps/config

拉取鏡像

docker pull oldiy/nps-server

運行容器 創建容器

docker run -d --name nps --net=host -v /root/docker/nps/config:/nps/conf oldiy/nps-server

現在 nps 已經開始運行了。

停止運行容器

docker stop nps

為什么這里要停止運行呢?

因為這時候在 config 目錄下已經生成了一些配置文件,考慮到安全性,我們需要做一些改動。

修改配置

vim /root/docker/nps/config/nps.conf

打開后重點關注下面這幾項:

...
bridge_port=8024    # 客戶端連接端口
...
web_username=admin  # 后臺管理用戶名
web_password=123    # 后臺管理密碼
web_port = 8080     # 后臺管理端口
...

以上是默認的配置,建議改掉。

啟動容器

docker start nps

現在可以在網頁端訪問 <ip_addr>:<web_port>,并通過用戶名 <web_username> 和密碼 <web_password> 登錄后臺管理界面了。
能夠成功訪問后,繼續下面的步驟。

添加客戶端

點擊左側菜單欄的 客戶端 選項,再點擊新增。

Docker上部署?nps?和?npc?實現內網穿透

設置一個 客戶端驗證密鑰,這里可以隨便填。壓縮、加密愿意的話也可以選 yes。

Docker上部署?nps?和?npc?實現內網穿透

設置好后點擊 新增 即可。

Docker上部署?nps?和?npc?實現內網穿透

留意一下這里的 idvkey

本地機上運行 npc

本地機建議選擇一臺 7*24 小時運行的設備,一般是路由器或者 NAS ,我這里就選擇群暉了,DSM 有很好用的 docker 圖形化管理套件,所以下面用圖形化界面演示如何部署 npc 。

拉取鏡像

點擊菜單欄中的注冊表,搜索 npc-client,下載第一個就行。

Docker上部署?nps?和?npc?實現內網穿透

創建容器

點擊菜單欄中的映像,找到下載好的npc,啟動。

Docker上部署?nps?和?npc?實現內網穿透

高級設置->網絡中注意勾選使用與 Docker Host 相同的網絡。

Docker上部署?nps?和?npc?實現內網穿透

再到高級設置->環境中修改兩個環境變量:

SERVERIP

對應云主機的 <ip>:<bridge_port> VKEY

對應上面添加過的客戶端的 vkey

Docker上部署?nps?和?npc?實現內網穿透

接著一路點擊 應用,啟動容器即可。

這時候在 nps 后臺可以看到客戶端已經在線。

Docker上部署?nps?和?npc?實現內網穿透

后臺配置 nps

前面部署 nps 時候已經配置了一部分了,接下來要配置的就是具體需要穿透的端口了。

添加 tcp 隧道

這里舉例配置一下 Jellyfin 的 http 端口 8096
進入 nps 后臺管理,點擊左側菜單欄的 客戶端 選項,再點擊新增。

Docker上部署?nps?和?npc?實現內網穿透

類型
這里選 tcp 不用動它。 備注
隨便填,方便自己記就行。 服務器端口
指外放訪問端口,我這里跟 Jellyfin 內網一致了,這里只是為了演示用默認,等下就會改掉。 目標
指內網對應服務的地址和端口。 客戶端 id
就是上面我說了要留意一下的 id,我這里是 3

Docker上部署?nps?和?npc?實現內網穿透

然后點擊 新增

Docker上部署?nps?和?npc?實現內網穿透

這樣一條隧道就添加好了。

至此內網穿透算是部署好了。

嘗試訪問一下 Jellyfin。

Docker上部署?nps?和?npc?實現內網穿透

容器保活

有時候運行的容器會自己掛掉,雖然不經常發生,但是偶爾來一次,遇上剛好要用的時候就很煩人。
下載演示我在服務端如何讓容器保活的,方法比較粗暴但有效。

創建目錄

創建目錄來存放腳本和日志文件。

mkdir -p /root/docker/nps/script
mkdir -p /root/docker/nps/log

獲取容器 ID

docker ps -q --no-trunc

會得到一長串 ID,記下來 <nps_id>

如果你返回了多個 ID,那你應該知道要怎么區分那個是 nps 的。

keepActive.sh

創建 bash 腳本,放到 /root/docker/nps/script/keepActive.sh

#!/bin/bash
cur=$(cd $(dirname $0); pwd -P)
log="$cur/../log/log"
a=$(docker ps -q --no-trunc | grep '<nps_id>')  # 這里其實就是去匹配看看當前運行中的容器有沒有nps,<nps_id>改成上一步獲取到的。
if [[ "_$a" == "_" ]]; then
    docker restart nps  # 第一次重啟 nps
    if [[ $? == 0 ]]; then
        echo "Revive  $(date +'%F %T')" >> $log
    else
        echo "Failed  $(date +'%F %T')" >> $log
        systemctl restart docker.service  # 重啟失敗大概率是 docker 服務掛了,這里重啟服務
        docker restart nps
        echo "Restart $(date +'%F %T')" >> $log
    fi
else
    echo "Active  $(date +'%F %T')" >> $log
fi

如果是服務 docker 掛了,且重啟失敗,那就不是保不保活的問題了,登上服務器檢查吧。

crontab.set

創建一個 crontab.set,用來配置定時任務。這個文件就隨便放了,一次性的。

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

*  *  *  *  * /root/docker/nps/script/keepActive.sh

接著運行:

crontab crontab.set

這里是配置一分鐘運行一次 keepActive.sh 腳本,所以如果 nps 掛了,一分鐘內它就會重啟了。

如果你還配置了其他的定時任務,那你應該知道怎么設置 crontab,別把以前配置的任務給覆蓋了。

Docker的容器化技術為應用的部署和管理帶來了很大的便利性,尤其是在內網穿透這種需要部署多個應用的場景下。本文介紹了如何使用Docker部署nps和npc實現內網穿透,通過容器的隔離性和安全性,可以有效地保護應用的安全性。同時,Docker的易用性和可擴展性也為應用的管理和維護帶來了很大的便利性。

分享到:
標簽:Docker 內網 服務器 穿透 部署
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定