Cómo configurar un servidor front-end PageKite en Debian 9

Índice
  1. Introducción
  2. Prerrequisitos
  3. Paso 1: Configuración de los servidores
    1. Instalación de dependencias
    2. Configuración de VNC
    3. Configurar el firewall
  4. Paso 2: Instalación de PageKite en el servidor front-end
  5. Paso 3: Configuración del servidor front-end
  6. Paso 4: Conexión al host detrás de NAT

El autor seleccionó el Open Internet/Free Speech Fund para recibir una donación como parte del programa Write for DOnations.

Introducción

Las redes privadas generalmente proporcionan acceso a Internet a los hosts mediante NAT (traducción de direcciones de red), compartiendo una única dirección IP pública con todos los hosts dentro de la red privada. En los sistemas NAT, los hosts dentro de la red privada no son visibles desde fuera de la red. Para exponer los servicios que se ejecutan en estos hosts a Internet público, normalmente se crean reglas NAT en la puerta de enlace, comúnmente llamadas reglas de reenvío de puertos. Sin embargo, en varias situaciones, no se tiene acceso a la puerta de enlace para configurar estas reglas. Para situaciones como esta, las soluciones de tunelización como PageKite resultan útiles.

PageKite es una solución de tunelización rápida y segura que puede exponer un servicio dentro de una red privada a la red pública de Internet sin necesidad de reenvío de puertos. Para ello, se basa en un servidor externo, llamado servidor front-end, al que se conectan el servidor detrás de NAT y los clientes para permitir la comunicación entre ellos. De forma predeterminada, PageKite utiliza su propio servicio comercial pagekite.net, pero como es un proyecto completamente de código abierto, permite configurar un frontend privado en un host de acceso público, como un Droplet de DigitalOcean. Con esta configuración, puede crear una solución independiente del proveedor para el acceso remoto a los hosts detrás de NAT. Al configurar los hosts remotos con el cliente PageKite para que se conecten al frontend y expongan el puerto SSH, es posible acceder a ellos a través del shell de la interfaz de línea de comandos mediante SSH. También es posible acceder a una interfaz gráfica de usuario mediante un sistema de uso compartido de escritorio como VNC o RDP que se ejecuta sobre una conexión SSH.

En este tutorial, instalará y configurará un servicio front-end PageKite en un servidor que ejecuta Debian 9. También configurará dos servidores Debian 9 más para simular un entorno local y uno remoto. Cuando haya terminado, habrá configurado un servidor para varios clientes y lo habrá probado con una solución práctica para el acceso remoto mediante SSH y VNC.

Prerrequisitos

Antes de seguir esta guía necesitarás lo siguiente:

  • Una cuenta de DigitalOcean para configurar los Droplets que se utilizarán en el tutorial.
  • Un servidor que ejecute Debian 9 con una dirección IP pública para actuar como servidor front-end, configurado de acuerdo con la guía Configuración inicial del servidor con Debian 9. Un Droplet DigitalOcean estándar con 1 GB de memoria es suficiente para fines de prueba o para aplicaciones con pocas conexiones. Nos referiremos a este servidor por el nombre de host front-end-servery su dirección IP pública por Front_End_Public_IP.
  • Dos hosts que ejecutan Debian 9, que desempeñarán el papel de host remoto y local que se conectarán mediante el servicio PageKite, configurados de acuerdo con la guía Configuración inicial del servidor con Debian 9. El host local accederá al host remoto, con acceso a Internet a través de NAT, mediante un túnel PageKite. Se hará referencia a los hosts remotos y locales mediante los nombres de host remote-hosty local-hostsus direcciones IP públicas mediante Remote_Host_Public_IPy Local_Host_Public_IPrespectivamente. Este tutorial utilizará dos Droplets DigitalOcean estándar con 1 GB de memoria para representarlos. Alternativamente, se podrían utilizar dos máquinas locales o virtuales para representar estos hosts.
  • Un nombre de dominio completamente registrado. Este tutorial lo utilizará your_domaincomo ejemplo. Puede comprar un nombre de dominio en Namecheap, obtener uno gratis en Freenom o utilizar el registrador de dominios que prefiera.
  • Los dos siguientes registros DNS están configurados para su servidor. Puede consultar esta introducción a DigitalOcean DNS para obtener detalles sobre cómo agregarlos.
  • Un registro A que apunta a la dirección IP del .pagekite.your_domainfront-end-server
  • También necesitamos configurar el DNS de modo que cada dominio que termine en también apunte a nuestro . Esto se puede configurar utilizando entradas DNS comodín. En este caso, cree un registro A para que la entrada DNS comodín apunte a la misma dirección IP, . Esto se utilizará para distinguir a los clientes que se conectan a nuestro servidor por nombre de dominio ( y , por ejemplo) y canalizar las solicitudes de forma adecuada.pagekite.your_domainfront-end-server*.pagekite.your_domainFront_End_Public_IPclient-1.pagekite.your_domainclient-2.pagekite.your_domain
  • Una computadora local con un cliente VNC instalado que admita conexiones VNC a través de túneles SSH.
    • En Windows, puede utilizar TightVNC, RealVNC o UltraVNC.
    • En macOS, puedes usar el programa de compartir pantalla integrado o puedes usar una aplicación multiplataforma como RealVNC.
    • En Linux, puedes elegir entre muchas opciones, incluidas vinagre, krdc, RealVNC o TightVNC.

Paso 1: Configuración de los servidores

En este tutorial, vamos a utilizar tres Droplets de DigitalOcean para desempeñar el papel de front-end-server, local-hosty remote-host. Para ello, primero configuraremos local-hosty remote-hostpara que tengan acceso al entorno gráfico y para que imiten el comportamiento de un remote-hostbajo NAT, de modo que PageKite se pueda utilizar como una solución para acceder a sus servicios. Además de eso, también debemos configurar las front-end-serverreglas del firewall del Droplet para permitirle trabajar con PageKite e intermediar la conexión entre local-hosty remote-host.

Como vamos a trabajar con varios servidores, utilizaremos diferentes colores en las listas de comandos para identificar qué servidor estamos usando, de la siguiente manera:

  1. # Commands and outputs in the front-end-server Droplet
  1. # Commands and outputs in the remote-host Droplet
  1. # Commands and outputs in the local-host Droplet
  1. # Commands and outputs in both the remote-host and local-host Droplets

Primero, repasemos los pasos para remote-hostlos local-hostDroplets y para instalar las dependencias y configurar el acceso al entorno gráfico mediante VNC. Después, cubriremos la configuración del firewall en cada uno de los tres Droplets para permitir que se front-end-serverejecute PageKite e imite una conexión mediante NAT en remote-host.

Instalación de dependencias

Necesitaremos acceso a la interfaz gráfica en ambos local-hosthosts remote-hostpara ejecutar esta demostración. En local-host, usaremos una sesión VNC para acceder a su interfaz gráfica y probar nuestra configuración usando el navegador. En remote-host, configuraremos una sesión VNC a la que accederemos desde local-host.

Para configurar VNC, primero debemos instalar algunas dependencias en local-hosty remote-host. Pero antes de instalar cualquier paquete, debemos actualizar la lista de paquetes de los repositorios ejecutando lo siguiente en ambos servidores:

  1. sudo apt-get update

A continuación, instalamos el servidor VNC y un entorno gráfico de usuario, necesarios para iniciar una sesión VNC. Utilizaremos el servidor VNC Tight y el entorno de escritorio Xfce, que se pueden instalar ejecutando:

  1. sudo apt-get install xfce4 xfce4-goodies tightvncserver

En medio de la instalación del entorno gráfico se nos preguntará por la distribución del teclado que deseamos utilizar. Para un teclado QWERTY US, seleccionar English (US).

Además de estos, local-hostvamos a necesitar un visor VNC y un navegador de Internet para poder realizar la conexión a remote-host. Este tutorial instalará el navegador web Firefox y el xtightvncviewer. Para instalarlos, ejecute:

  1. sudo apt-get install firefox-esr xtightvncviewer

Cuando se instala un entorno gráfico, el sistema se inicializa en modo gráfico de forma predeterminada. Al utilizar la consola de DigitalOcean, es posible visualizar el administrador de inicio de sesión gráfico, pero no es posible iniciar sesión ni utilizar la interfaz de línea de comandos. En nuestra configuración, estamos imitando el comportamiento de la red como si estuviéramos utilizando NAT. Para ello, necesitaremos utilizar la consola de DigitalOcean, ya que no podremos conectarnos mediante SSH. Por lo tanto, debemos desactivar la interfaz gráfica de usuario para que no se inicie automáticamente al arrancar. Esto se puede hacer desactivando el administrador de inicio de sesión en ambos servidores:

  1. sudo systemctl disable lightdm.service

Después de deshabilitar el administrador de inicio de sesión, podemos reiniciar los Droplets y probar si podemos iniciar sesión mediante la consola de DigitalOcean. Para ello, ejecute lo siguiente:

  1. sudo shutdown -r now

A continuación, acceda a la consola de DigitalOcean navegando a la página Droplet en el Panel de control de DigitalOcean, seleccionando su local-hostDroplet y haciendo clic en la palabra Consola en la esquina superior derecha, cerca del interruptor para activar y desactivar el Droplet:

Una vez que presione Enter en la consola, se le solicitará su nombre de usuario y contraseña. Ingrese estas credenciales para que aparezca el indicador de línea de comandos:

Una vez que hayas hecho esto para el local-host, repítelo para el remote-host.

Con la consola activa para ambos Droplets, ahora podemos configurar el VNC.

Configuración de VNC

Aquí, realizaremos una configuración básica de VNC. Si desea una guía más detallada sobre cómo configurar esto, consulte nuestro tutorial Cómo instalar y configurar VNC en Debian 9.

Para iniciar una sesión VNC, ejecute lo siguiente en ambos local-hostDroplets remote-host:

  1. vncserver

En la primera ejecución, el sistema creará los archivos de configuración y solicitará la contraseña principal. Ingrese la contraseña deseada y luego verifíquela. El servidor VNC también solicitará una contraseña de solo lectura, que se utiliza para ver la sesión VNC de otro usuario. Como no necesitaremos una sesión VNC de solo lectura, escriba ncuando aparezca el mensaje.

El resultado será similar a esto:

Outputsammy@remote-host:/home/sammy$ vncserverYou will require a password to access your desktops.Password: Verify:   Would you like to enter a view-only password (y/n)? nxauth:  file /home/sammy/.Xauthority does not existNew 'X' desktop is remote-host:1Creating default startup script /home/sammy/.vnc/xstartupStarting applications specified in /home/sammy/.vnc/xstartupLog file is /home/sammy/.vnc/remote-host:1.log

El :1después del nombre de host representa el número de la sesión VNC. De forma predeterminada, el número de sesión 1se ejecuta en el puerto 5901, el número de sesión 2en el puerto 5902, y así sucesivamente. Siguiendo la salida anterior, podemos acceder remote-hostmediante un cliente VNC para conectarnos Remote_Host_Public_IPen el puerto 5901.

Un problema de la configuración anterior es que no es persistente, lo que significa que no se iniciará por defecto cuando se reinicie el Droplet. Para que sea persistente, podemos crear un servicio Systemd y habilitarlo. Para ello, crearemos el vncserver@.servicearchivo en /etc/systemd/system, lo que se puede hacer mediante nano:

  1. sudo nano /etc/systemd/system/vncserver@.service

Coloque el siguiente contenido en el archivo, reemplazándolo sammycon su nombre de usuario:

/etc/systemd/system/vncserver@.servicio

[Unit]Description=Start TightVNC server at startupAfter=syslog.target network.target[Service]Type=forkingUser=sammyPAMName=loginPIDFile=/home/sammy/.vnc/%H:%i.pidExecStartPre=-/usr/bin/vncserver -kill :%i  /dev/null 21ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%iExecStop=/usr/bin/vncserver -kill :%i[Install]WantedBy=multi-user.target

Este archivo crea una vncserverunidad Systemd, que se puede configurar como un servicio del sistema mediante la systemctlherramienta. En este caso, cuando se inicia el servicio, finaliza la sesión VNC si ya se está ejecutando (línea ExecStartPre) e inicia una nueva sesión utilizando la resolución establecida en 1280x800(línea ExecStart). Cuando se detiene el servicio, finaliza la sesión VNC (línea ExecStop).

Guarde el archivo y salga nano. A continuación, haremos que el sistema conozca el nuevo archivo de unidad ejecutando:

  1. sudo systemctl daemon-reload

Luego, habilite el servicio para que se inicie automáticamente cuando se inicialice el servidor ejecutando:

  1. sudo systemctl enable vncserver@1.service

Cuando usamos el enablecomando con systemctl, se crean enlaces simbólicos para que el servicio se inicie automáticamente cuando se inicializa el sistema, como lo informa la salida del comando anterior:

OutputCreated symlink /etc/systemd/system/multi-user.target.wants/vncserver@1.service → /etc/systemd/system/vncserver@.service.

Con el servidor VNC configurado correctamente, podemos reiniciar los Droplets para probar si el servicio se inicia automáticamente:

  1. sudo shutdown -r now

Después de que el sistema se inicialice, inicie sesión usando SSH y verifique si VNC se está ejecutando con:

  1. sudo systemctl status vncserver@1.service

La salida indicará que el servicio se está ejecutando:

● vncserver@1.service - Start TightVNC server at startup   Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)   Active: active (running) since Thu 2019-08-29 19:21:12 UTC; 1h 22min ago  Process: 848 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS)  Process: 760 ExecStartPre=/usr/bin/vncserver -kill :1  /dev/null 21 (code=exited, status=2) Main PID: 874 (Xtightvnc)    Tasks: 0 (limit: 4915)   CGroup: /system.slice/system-vncserver.slice/vncserver@1.service           ‣ 874 Xtightvnc :1 -desktop X -auth /home/sammy/.Xauthority -geometry 1280x800 -depth 24 -rfbwaitAug 29 19:21:10 remote-host systemd[1]: Starting Start TightVNC server at startup...Aug 29 19:21:10 remote-host systemd[760]: pam_unix(login:session): session opened for user sammy by (uid=0)Aug 29 19:21:11 remote-host systemd[848]: pam_unix(login:session): session opened for user sammy by (uid=0)Aug 29 19:21:12 remote-host systemd[1]: Started Start TightVNC server at startup.~

Con esto finaliza la configuración de VNC. Recuerde seguir los pasos anteriores tanto en remote-hostcomo en local-host. Ahora, analicemos las configuraciones del firewall para cada host.

Configurar el firewall

Comenzando con el remote-host, configuraremos el firewall para rechazar conexiones externas a los servicios de Droplets para imitar el comportamiento detrás de NAT. En este tutorial, vamos a utilizar el puerto 8000para conexiones HTTP, 22para SSH y 5901para VNC, por lo que configuraremos el firewall para rechazar conexiones externas a estos puertos.

Siguiendo la configuración inicial de Debian 9, remote-hosttendremos una regla de firewall para permitir conexiones a SSH. Podemos revisar esta regla ejecutando:

  1. sudo ufw status verbose

El resultado será el siguiente:

OutputStatus: activeLogging: on (low)Default: deny (incoming), allow (outgoing), disabled (routed)New profiles: skipTo                         Action      From--                         ------      ----22/tcp (OpenSSH)           ALLOW IN    Anywhere                  22/tcp (OpenSSH (v6))      ALLOW IN    Anywhere (v6)    

Elimine estas reglas SSH para imitar el comportamiento detrás de NAT.

Advertencia: si cierra el puerto 22, ya no podrá usar SSH para iniciar sesión de forma remota en su servidor. Para los Droplets, esto no es un problema porque puede acceder a la consola del servidor a través del Panel de control de DigitalOcean, como hicimos al final de la sección Instalación de dependencias de este paso. Sin embargo, si no está usando un Droplet, tenga cuidado: si cierra el puerto, 22podría quedar fuera de su servidor si no tiene otros medios para acceder a él.

Para denegar el acceso SSH, utilice ufwy ejecute:

  1. sudo ufw delete allow OpenSSH

Podemos verificar que se eliminaron las reglas SSH verificando nuevamente el estado del firewall:

  1. sudo ufw status verbose

La salida no mostrará ninguna regla de firewall, como en lo siguiente:

OutputStatus: activeLogging: on (low)Default: deny (incoming), allow (outgoing), disabled (routed)New profiles: skip

Aunque el firewall esté configurado, la nueva configuración no se ejecutará hasta que la habilitemos con:

  1. sudo ufw enable

Después de habilitarlo, tenga en cuenta que ya no podremos acceder remote-hosta través de SSH, como se menciona en la salida del comando:

OutputCommand may disrupt existing ssh connections. Proceed with operation (y|n)? yFirewall is active and enabled on system startup

Cierra sesión en el servidor remote-hosty prueba la configuración intentando establecer una conexión SSH o VNC. No será posible. A partir de ahora, podremos acceder remote-hostexclusivamente a través de la consola de DigitalOcean.

En local-host, dejaremos abiertos los puertos SSH. Solo necesitamos una regla de firewall para permitir el acceso a la sesión VNC:

  1. sudo ufw allow 5901

Después de modificar las reglas del firewall, habilítelo ejecutando:

  1. sudo ufw enable

Ahora podemos probar la conexión VNC usando el cliente VNC requerido en su máquina local para conectarnos a local-hostun puerto 5901usando la contraseña VNC que ha configurado.

Para ello, abra su cliente VNC y conéctese a Local_Host_Public_IP:5901. Una vez que ingrese la contraseña, se conectará a la sesión VNC.

Nota: Si tiene problemas para conectarse a la sesión VNC, reinicie el servicio VNC local-hoste sudo systemctl restart vncserver@1intente conectarse nuevamente.

En su primer inicio, Xfce preguntará sobre la configuración inicial del entorno:

Para este tutorial, seleccione la opción Usar configuración predeterminada .

Por último, debemos permitir conexiones al puerto 80en el front-end-serverque se utilizará PageKite. Abra una terminal en front-end-servery utilice el siguiente comando:

  1. sudo ufw allow 80

Además, permita el tráfico en el puerto 443para HTTPS:

  1. sudo ufw allow 443

Para habilitar la nueva configuración del firewall, ejecute lo siguiente:

  1. sudo ufw enable

Ahora que hemos configurado los Droplets, configuremos el servidor front-end de PageKite.

Paso 2: Instalación de PageKite en el servidor front-end

Aunque es posible ejecutar PageKite mediante un script de Python para configurar el servidor front-end, es más confiable ejecutarlo mediante un servicio del sistema. Para ello, necesitaremos instalar PageKite en el servidor.

La forma recomendada de instalar un servicio en un servidor Debian es utilizar un paquete de distribución. De esta forma, es posible obtener actualizaciones automáticas y configurar el servicio para que se inicie al arrancar el sistema.

Primero, configuraremos el repositorio para instalar PageKite. Para ello, actualice la lista de paquetes de los repositorios:

  1. sudo apt-get update

Una vez realizada la actualización, instale el paquete dirmngr, necesario para soportar la importación del llavero desde el repositorio de PageKite para garantizar una instalación segura:

  1. sudo apt-get install dirmngr

A continuación, agregue el repositorio al /etc/apt/sources.listarchivo ejecutando:

  1. echo deb http://pagekite.net/pk/deb/ pagekite main | sudo tee -a /etc/apt/sources.list

Después de configurar el repositorio, importe la clave de empaquetado de PageKite a nuestro conjunto de claves de confianza, de modo que podamos instalar paquetes desde este repositorio. La administración de la clave de empaquetado se realiza con la apt-keyutilidad. En este caso, tenemos que importar la clave AED248B1C7B2CAC3desde el servidor de claves keys.gnupg.net, lo que se puede hacer ejecutando:

  1. sudo apt-key adv --recv-keys --keyserver keys.gnupg.net AED248B1C7B2CAC3

A continuación, actualice nuevamente las listas de paquetes de los repositorios, para que el pagekitepaquete quede indexado:

  1. sudo apt-get update

Por último, instálalo con:

  1. sudo apt-get install pagekite

Ahora que tenemos instalado PageKite, configuremos el servidor front-end y configuremos el servicio para que se ejecute en el arranque.

Paso 3: Configuración del servidor front-end

El paquete PageKite que acabamos de instalar se puede utilizar para configurar una conexión a un servidor front-end de PageKite. También se puede utilizar para configurar un servicio front-end que reciba conexiones de PageKite, que es lo que queremos hacer aquí. Para ello, tenemos que editar los archivos de configuración de PageKite.

PageKite almacena sus archivos de configuración en el directorio /etc/pagekite.d. El primer cambio que tenemos que hacer es deshabilitar todas las líneas del /etc/pagekite.d/10_account.rcarchivo, ya que este archivo solo se usa cuando PageKite se configura como cliente para conectarse a un servidor front-end. Podemos editar el archivo usando nano:

  1. sudo nano /etc/pagekite.d/10_account.rc

Para deshabilitar las líneas, agregue un #para deshabilitar las líneas activas del archivo:

/etc/pagekite.d/10_account.rc

#################################[ This file is placed in the Public Domain. ]## Replace the following with your account details.# kitename   = NAME.pagekite.me# kitesecret = YOURSECRET# Delete this line!# abort_not_configured

Después de realizar los cambios, guárdelos y salga nano. A continuación, edite el archivo /etc/pagekite.d/20_frontends.rc:

  1. sudo nano /etc/pagekite.d/20_frontends.rc

Agregue las siguientes líneas resaltadas al archivo y comente la defaultslínea, asegurándose de reemplazarla your_domaincon el nombre de dominio que está usando y examplepasswordcon una contraseña de su elección:

/etc/pagekite.d/20_frontends.rc

#################################[ This file is placed in the Public Domain. ]## Front-end selection## Front-ends accept incoming requests on your behalf and forward them to# your PageKite, which in turn forwards them to the actual server.  You# probably need at least one, the service defaults will choose one for you.# Use the pagekite.net service defaults.# defaults# If you want to use your own, use something like:#     frontend = hostname:port# or:#     frontends = COUNT:dnsname:portisfrontendports=80,443protos=http,https,rawdomain=http,https,raw:*.pagekite.your_domain:examplepasswordrawports=virtual

Vamos a explicar estas líneas una por una. Primero, para configurar PageKite como un servidor front-end, agregamos la línea isfrontend. Para configurar los puertos en los que el servidor estará escuchando, agregamos ports=80,443. También configuramos los protocolos que PageKite va a utilizar como proxy. Para usar HTTP, HTTPS y RAW (que se usa en las conexiones SSH), agregamos la línea protos=http,https,raw. También deshabilitamos la defaultsconfiguración para que no haya configuraciones conflictivas para el servidor.

Además de eso, configuramos el dominio que vamos a utilizar para el front-end-server. Para cada cliente, se utilizará un subdominio, por lo que necesitábamos las configuraciones de DNS en la sección de Prerrequisitos. También configuramos una contraseña que se utilizará para autenticar a los clientes. Usando el marcador de posición password examplepassword, estas configuraciones se realizaron agregando la línea . Finalmente, agregamos una línea adicional para poder conectarnos usando SSH (que no está documentado, como se explica aquí): .domain=http,https,raw:*.pagekite.your_domain:examplepasswordrawports=virtual

Guarde el archivo y salga nano. Reinicie el servicio PageKite ejecutando lo siguiente:

  1. sudo systemctl restart pagekite.service

Luego habilítelo para que se inicie al arrancar con:

  1. sudo systemctl enable pagekite.service

Ahora que lo tenemos front-end-serveren ejecución, probémoslo exponiendo un puerto HTTP en remote-hosty conectándonos a él desde local-host.

Paso 4: Conexión al host detrás de NAT

Para probar el front-end-server, iniciemos un servicio HTTP en remote-hosty lo expongamos a Internet mediante PageKite, de modo que podamos conectarnos a él desde local-host. Recuerde que tenemos que conectarnos a remote-hostmediante la consola de DigitalOcean, ya que hemos configurado el firewall para rechazar las conexiones SSH entrantes.

Para iniciar un servidor HTTP para realizar pruebas, podemos utilizar el http.servermódulo Python 3. Dado que Python ya está instalado incluso en la instalación mínima de Debian y http.serveres parte de la biblioteca estándar de Python, para iniciar el servidor HTTP utilizando el puerto 8000ejecutaremos remote-host:

  1. python3 -m http.server 8000

Como Debian 9 todavía utiliza Python 2 de forma predeterminada, es necesario invocar Python mediante la ejecución python3para iniciar el servidor. El carácter final indica que el comando se ejecuta en segundo plano, de modo que aún podemos usar la terminal de shell. La salida indicará que el servidor se está ejecutando:

Outputsammy@remote-host:~$ python3 -m http.server 8000 [1] 1782sammy@remote-host:~$ Serving HTTP on 0.0.0.0 port 8000 ...

Nota: El número 1782que aparece en esta salida se refiere al ID que se asignó al proceso iniciado con este comando y puede ser diferente según la ejecución. Dado que se está ejecutando en segundo plano, podemos usar este ID para finalizar (matar) el proceso mediante la emisión de kill -9 1782.

Con el servidor HTTP en funcionamiento, podemos establecer el túnel PageKite. Una forma rápida de hacerlo es mediante el pagekite.pyscript. Podemos descargarlo para remote-hostejecutarlo:

  1. wget https://pagekite.net/pk/pagekite.py

Después de descargarlo, márquelo como ejecutable ejecutando:

  1. chmod a+x pagekite.py

Nota: Dado que PageKite está escrito en Python 2 y esta es la versión predeterminada actual de Python en Debian 9, el comando que se muestra a continuación funciona sin errores. Sin embargo, dado que Python predeterminado se está migrando progresivamente a Python 3 en varias distribuciones de Linux, puede ser necesario modificar la primera línea del pagekite.pyscript para configurarlo para que se ejecute con Python 2 (estableciéndolo en #!/usr/bin/python2).

Con pagekite.pydisponible en el directorio actual, podemos conectarnos front-end-servery exponer el servidor HTTP en el dominio ejecutando lo siguiente, sustituyendo y con nuestras propias credenciales:remote-host.pagekite.your_domainyour_domainexamplepassword

  1. ./pagekite.py --clean --frontend=pagekite.your_domain:80 --service_on=http:remote-host.pagekite.your_domain:localhost:8000:examplepassword

Echemos un vistazo a los argumentos de este comando:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion