nps のインストール#
サーバーサイド#
- Nginx Proxy Managerをインストール
- プロジェクトアドレス yisier/nps
mkdir -p ~/base/NPS && cd ~/base/NPS && mkdir conf
nano docker-compose.yml
nano conf/nps.conf
touch conf/{clients,hosts,tasks}.json
sudo docker-compose up -d
# 反代 dashboard 8080
version: '3.3'
services:
nps:
container_name: nps
restart: unless-stopped
network_mode: host
volumes:
- './conf:/conf'
- '/etc/localtime:/etc/localtime:ro'
image: yisier1/nps
networks:
default:
external: true
name: ngpm
appname = nps
#起動モード(dev|pro)
runmode = pro
#HTTP(S)プロキシポート、空の場合は起動しない
http_proxy_ip=0.0.0.0
http_proxy_port=18081
##ブリッジ
bridge_type=tcp
bridge_port=8024
bridge_ip=0.0.0.0
#トラフィックデータの永続化間隔(分)
#無視する場合は永続化しない
#flow_store_interval=1
# ログレベル LevelEmergency->0 LevelAlert->1 LevelCritical->2 LevelError->3 LevelWarning->4 LevelNotice->5 LevelInformational->6 LevelDebug->7
log_level=7
#log_path=nps.log
#IPアクセスを制限するかどうか、trueまたはfalseまたは無視
#ip_limit=true
#allow_ports=9001-9009,10001,11000-12000
#Web管理のマルチユーザーログイン
allow_user_login=false
allow_user_register=false
allow_user_change_username=false
#拡張
allow_flow_limit=false
allow_rate_limit=false
allow_tunnel_num_limit=false
allow_local_proxy=false
allow_connection_num_limit=false
allow_multi_ip=false
system_info_display=true
#キャッシュ
http_cache=false
http_cache_length=100
#オリジナルIPを取得
http_add_origin_header=false
#pprofデバッグオプション
#pprof_ip=0.0.0.0
#pprof_port=9999
#クライアント切断タイムアウト
disconnect_timeout=60
# 以下の設定が必要
# 公開パスワード、クライアントがサーバーに接続するために使用できる
# 接続後、サーバーは自分の設定ファイルに基づいて関連ポートを開き、関連ドメイン名を解析できる。
public_vkey=<16文字>
#Web API未認証IPアドレス(auth_crypt_keyの長さは16でなければならない)
#必要に応じてコメントを外す
auth_key=<24文字>
auth_crypt_key=<16文字>
#web
web_host=limour.top
web_username=Limour
web_password=<16文字>
web_port = 8080
web_ip=0.0.0.0
web_open_ssl=false
web_base_url=
open_captcha=true
# プロキシの下にあるwebはサブパスを使用します。 http://host/nps のようにこれが必要です。
#web_base_url=/nps
#p2p
p2p_ip=<サーバーのIPを記入>
p2p_port=6000
# 6000に設定し、コンソールのファイアウォールで6000〜6002(追加の2ポート)udpポートを開放してください
クライアント#
# nps web管理-クライアント、新しいクライアントを作成し、ユニークな検証キーを記録します
mkdir -p ~/base/NPC && cd ~/base/NPC
nano docker-compose.yml
sudo docker-compose up -d
sudo docker-compose logs
version: '3.3'
services:
npc:
container_name: npc
network_mode: host
image: yisier1/npc
restart: unless-stopped
command: -server=nps.blog.com:8024 -vkey=<webインターフェースに表示されるキー>
一時クライアント#
#!/usr/bin/bash
~/bin/npc -server=nps.blog.com:8024 -vkey=*** -type=tcp > ~/log/npc.log 2>&1 &
source activate jupyter
jupyter lab \
--ip='0.0.0.0' \
--no-browser \
--ServerApp.token="****" \
--port=19878 \
--NotebookNotary.db_file=':memory:'
nano j.sh
chmod +x j.sh
nohup ./j.sh > ~/log/j.log 2>&1 &
frp のインストール#
サーバーサイド#
mkdir -p ~/base/FRP && cd ~/base/FRP
nano docker-compose.yml
nano frps.ini
sudo docker-compose up -d
tail frps_log/frps.log
# 反代 dashboard 11750
version: '3.3'
services:
frps:
restart: always
network_mode: host
volumes:
- './frps.ini:/etc/frp/frps.ini'
- './frps_log:/tmp/frps_log'
container_name: frps
image: snowdreamtech/frps
networks:
default:
external: true
name: ngpm
[common]
tls_only = true
authentication_method = token
token = <token>
bind_port = 21000
bind_udp_port = 20999
kcp_bind_port = 21000
dashboard_port = 11750
dashboard_user = Limour
dashboard_pwd = <passwd>
allow_ports = 21001-21999
subdomain_host = limour.top
vhost_http_port = 21080
vhost_https_port = 21443
log_file = /tmp/frps_log/frps.log
log_level = info
log_max_days = 3
クライアント#
mkdir -p ~/base/FRP && cd ~/base/FRP
nano docker-compose.yml
nano frpc.ini
sudo docker-compose up -d
version: '3.3'
services:
frpc:
restart: always
network_mode: host
volumes:
- './frpc.ini:/etc/frp/frpc.ini'
image: snowdreamtech/frpc
[common]
server_addr = frp.limour.top
server_port = 21000
tls_enable = true
token = <token>
user = rasp4
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 21122
[AAA]
type = http
local_ip = 127.0.0.1
local_port = 2017
use_compression = true
subdomain = aaa
host_header_rewrite = 127.0.0.1
[CaaS]
type = http
use_compression = true
subdomain = caas4
plugin = http2https
plugin_local_addr = 127.0.0.1:8443
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From-Where = frp
[app_web]
type = http
local_ip = 192.168.1.1
local_port = 80
use_compression = true
subdomain = app
http_user = Limour
http_pwd = <APP_PASSWORD>
ServerStatus のインストール#
サーバーサイド#
mkdir -p ~/sss && cd ~/sss
wget --no-check-certificate -qO ./serverstatus-config.json https://raw.githubusercontent.com/cppla/ServerStatus/master/server/config.json && mkdir ./serverstatus-monthtraffic
nano docker-compose.yml
sudo docker-compose up -d
# NPMパネル反代8001ポート、ドメイン名解析を設定
version: '3.3'
services:
serverstatus:
restart: always
volumes:
- './serverstatus-config.json:/ServerStatus/server/config.json'
- './serverstatus-monthtraffic:/usr/share/nginx/html/json'
ports:
- '8001:80'
- '35601:35601'
image: 'cppla/serverstatus:latest'
networks:
default:
external: true
name: ngpm
クライアント#
# serverstatus-config.jsonを編集
# サーバーを再起動 sudo docker-compose restart
wget --no-check-certificate -qO client-linux.py 'https://raw.githubusercontent.com/cppla/ServerStatus/master/clients/client-linux.py'
chmod +x client-linux.py
# テスト:/home/pi/client-linux.py SERVER=sss.limour.top USER=ld_rasp4 PASSWORD=DEFAULTPASSWORD INTERVAL=10
# systemサービスを作成
sudo nano /etc/systemd/system/ssc.service
sudo systemctl enable ssc
sudo systemctl start ssc
sudo systemctl status ssc
[Unit]
Description=ServerStatus-Client
After=network.target
[Service]
ExecStart=/home/pi/client-linux.py SERVER=45.79.67.132 USER=ld_rasp4 PASSWORD=DEFAULT_PASSWORD INTERVAL=10
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target