ssh を介した外部アクセスへのローカル サービスのプロキシ (ssh を使用してローカル サービスを外部アクセスにプロキシし、SSH セッション接続を維持する方法)

SSH を使用してローカル サービスを外部アクセスにプロキシし、SSH セッション接続を維持する方法

1. 外部サーバーのnginx設定

server {
    
    
    listen     localhost:80;
    server_name  _;
    root         /usr/share/nginx/html;

    # 重要:将请求转发到本地服务
    location / {
    
    
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        proxy_pass http://127.0.0.1:10412;
        proxy_set_header Host $host:80;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Via "nginx";
    }
}

2.認可認証

  1. エクストラネット サーバーで次のコマンドを実行して、公開キーを生成します。ssh-keygen -o
  2. 公開キーをイントラネット サーバーにコピーし、~/.ssh/authorized_keys

3. 対象のイントラネット サーバーへの SSH 接続

  1. サービスをローカルで開始し、ポート 8088 でリッスンします。
  2. 外部ネットワークからアクセスされたポート 10412 をローカル ポート 8088 に転送します。
nohup ssh -N -v -R 10412:127.0.0.1:8088 root@{
    
    外部服务器的外网IP} 2>&1 &

4. セッションを維持する

  1. SSH セッションを維持するには、次のコマンドを追加して接続を維持します。
  2. ServerAliveInterval は、指定されたサーバーが接続を維持するためにパケットを送信する時間 (単位: 秒)
  3. ServerAliveCountMax は、サーバーとの接続を維持するための指定された最大試行回数です。
nohup ssh -N -v -o ServerAliveInterval=10 -o ServerAliveCountMax=1000 -R 10412:127.0.0.1:8088 root@{
    
    外部服务器的外网IP} 2>&1 &

おすすめ

転載: blog.csdn.net/w_monster/article/details/129425074