Proxy de servicios locales para acceso externo a través de ssh (cómo usar ssh para proxy de servicios locales para acceso externo y mantener la conectividad de la sesión SSH)

Cómo usar ssh para enviar servicios locales al acceso externo y mantener la conectividad de la sesión SSH

1. Configuración nginx del servidor externo

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. Autenticación de autorización

  1. Ejecute el siguiente comando en el servidor de extranet para generar la clave pública:ssh-keygen -o
  2. Copie la clave pública al servidor de intranet y agréguela a~/.ssh/authorized_keys

3. Conexión SSH al servidor de intranet de destino

  1. Inicie el servicio localmente y escuche en el puerto 8088
  2. Se accede al puerto de reenvío 10412 desde la red externa al puerto local 8088
nohup ssh -N -v -R 10412:127.0.0.1:8088 root@{
    
    外部服务器的外网IP} 2>&1 &

4. Mantenga la sesión

  1. Para mantener la sesión SSH, agregue el siguiente comando para mantener la conexión
  2. ServerAliveInterval es el tiempo que tarda el servidor especificado en enviar un paquete para mantener la conexión (unidad: segundo)
  3. ServerAliveCountMax es el número máximo especificado de intentos para mantener una conexión con el servidor
nohup ssh -N -v -o ServerAliveInterval=10 -o ServerAliveCountMax=1000 -R 10412:127.0.0.1:8088 root@{
    
    外部服务器的外网IP} 2>&1 &

Supongo que te gusta

Origin blog.csdn.net/w_monster/article/details/129425074
Recomendado
Clasificación