logo Home / Manuais de Utilizaçãov1.0 / Instalação GSClient AppImage no Linux

Instalação GSClient AppImage no Linux

Documento com a lista de códigos de erros

#Requisitos Básicos

#Liberações no Firewall

Segue abaixo o nosso range de IPs e portas para liberação no firewall da máquina ou da rede, ou validação e liberação da rota por parte de todos os provedores de internet do cliente.

IP:

  • 18.231.194.64/26

Portas:

  • 443/UDP

  • 443/TCP

  • 55844/TCP

  • 55845/TCP

E DNS local 53/UDP (consultas em gsurfnet.com).

#Sistema Operacional

O AppImage é um formato de aplicativo universal para Linux, ele empacota o programa e todas as suas dependências em um único arquivo executável, o que permite rodá-lo em qualquer distribuição, desde que o Sistema Operacional atenda a alguns requisitos mínimos.

A seguir, listamos quais são esses requisitos e como validá-los:

1 - Arquitetura 64 bits.

  • Utilizando o comando abaixo um dos números retornados deve ser 64:

uname -m

2 - Framework FUSE (Filesystem in Userspace)

  • O utilizando os comandos abaixo, um deles deve retornar a versão se estiver instalado:

(fusermount3 --version || fusermount --version)

3 - Biblioteca GNU C Library (glibc) versão 2.27 ou superior.

  • Utilizando o comando abaixo, o número no final da primeira linha deve ser maior ou igual a 2.27:

ldd --version

Caso a versão da distribuição Linux sendo utilizada não atenda esses requisitos, será necessário uma das 3 alternativas abaixo:

  1. Atualizar a versão da distribuição ou das dependências para que atendam os requisitos.

  2. Utilizar outra distribuição ou versão que atenda os requisitos.

  3. Em último caso, utilizar o GSClient Classic.

#Instalação

A instalação deve ser realizada com o usuário root. Para alternar para este usuário, você pode utilizar o comando abaixo:

sudo su

Existem duas maneiras de realizar a instalação: via script ou manualmente. Escolha e execute apenas uma delas.

#Instalação via script

Executar o comando abaixo e seguir a instalação conforme o script solicitar:

U="https://gsurf.com.br/lib/linux/script_gsclient"; (wget -qO- $U || curl -sL $U) | bash

Observação: Antes de iniciar a nova instalação, o script removerá automaticamente versões anteriores, mas apenas se estiverem no padrão GSurf, instalações customizadas (pastas, arquivos ou serviços renomeados) exigem remoção manual.

#Instalação manual

Clique aqui para abrir o passo a passo de instalação manual

#Remoção de GSClient antigo

Somente realizar esse passo caso tenha algum GSClient instalado na máquina.

1 - Anotar a identificação do terminal da Central de Parceiros (CDP) que está instalado para reinstalar a OTP dele e utilizar na nova instalação:

cat /usr/gsurf/gsurfcli.txt

2 - Realizar a remoção completa dos arquivos antigos padrão GSurf:

killall serverSSL 2>/dev/null
killall gsclient 2>/dev/null
rm -r /usr/gsurf 2>/dev/null
rm -r /gsurf/ 2>/dev/null
rm -r /usr/sbin/gsurf/ 2>/dev/null
rm /usr/sbin/gsclient.AppImage 2>/dev/null    
find /lib* /usr/lib* -name "libGSurfRSA.so" -delete 2>/dev/null
rm /usr/lib/systemd/system/libssl.service 2>/dev/null
rm /usr/lib/systemd/system/gsclient.service 2>/dev/null
rm /etc/init.d/serverSSL 2>/dev/null
rm /etc/init.d/gsclient 2>/dev/null
sed -i '/serverSSL/d' /etc/rc.local 2>/dev/null
sed -i '/gsclient.AppImage/d' /etc/rc.local 2>/dev/null
sed -i '/serverSSL/d' /etc/rc.d/rc.local 2>/dev/null
sed -i '/gsclient.AppImage/d' /etc/rc.d/rc.local 2>/dev/null

Esses comandos realizam a desinstalação e limpeza completa do GSClient (Classic e AppImage), interrompendo os serviços em execução e removendo seus arquivos, pastas e registros de inicialização automática (systemd, init.d e rc.local).

Observação: Os comandos removerão automaticamente apenas instalações no padrão GSurf. Instalações customizadas (outras pastas, arquivos ou serviços renomeados) exigem remoção manual.

#Início da instalação

1 - Realizar o início da instalação:

Executar os comandos abaixo caso a versão da glibc no Sistema Operacional seja 2.34 ou superior:

mkdir -p /usr/sbin/gsurf
wget https://gsurf.com.br/lib/linux/gsclient_appimage_tls3.zip -P /usr/sbin/gsurf
(unzip -o /usr/sbin/gsurf/gsclient_appimage_tls3.zip -d /usr/sbin/gsurf || bsdtar -xf /usr/sbin/gsurf/gsclient_appimage_tls3.zip -C /usr/sbin/gsurf || busybox unzip -o /usr/sbin/gsurf/gsclient_appimage_tls3.zip -d /usr/sbin/gsurf) 2>/dev/null
chmod +x /usr/sbin/gsurf/*

Executar os comandos abaixo caso a versão da glibc no Sistema Operacional esteja entre 2.27 e 2.33:

mkdir -p /usr/sbin/gsurf
wget https://gsurf.com.br/lib/linux/gsclient_appimage_tls1.zip -P /usr/sbin/gsurf
(unzip -o /usr/sbin/gsurf/gsclient_appimage_tls1.zip -d /usr/sbin/gsurf || bsdtar -xf /usr/sbin/gsurf/gsclient_appimage_tls1.zip -C /usr/sbin/gsurf || busybox unzip -o /usr/sbin/gsurf/gsclient_appimage_tls1.zip -d /usr/sbin/gsurf) 2>/dev/null
chmod +x /usr/sbin/gsurf/*

Os comandos executados linha por linha criam o diretório gsurf, instalam e descompactam a versão do GSClient, além de conceder as permissões de execução.

#Instalação do Certificado

1 - Executar o instalador do certificado:

/usr/sbin/gsurf/gsclient_setup.AppImage

Com o instalador em execução, informe na seguinte ordem: usuário, senha da Central de Parceiros e o OTP (código de 10 números encontrados dentro do terminal na Central).

No final deverá ocorrer a mensagem Certificado instalado, pronto para execução do GS Client.

#Configurar execução como serviço

1 - Preparar o GSClient:

mv /usr/sbin/gsurf/gsclient.AppImage /usr/sbin
restorecon -v /usr/sbin/gsclient.AppImage 2>/dev/null
rm -r /usr/sbin/gsurf

Os comandos movem o GSClient para a pasta /usr/sbin, restauram o contexto do SELinux para o padrão da pasta (caso o sistema utilize) e removem a pasta de instalação.

Para que a VPN seja iniciada automaticamente com o sistema operacional, utilize somente um dos métodos a seguir, escolhendo conforme o padrão suportado pela sua distribuição (Systemd, Init.d ou Rc.local):

#Opção 1: Systemd

1 - Verificar se o sistema utiliza systemd:

  • Utilizando o comando abaixo o resultado deve ser systemd:

ps -p 1 -o comm=

2 - Realizar a criação do serviço no systemd:

mkdir -p /usr/lib/systemd/system

cat <<EOF > /usr/lib/systemd/system/gsclient.service
[Unit]
Description=GSClient
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/sbin/gsclient.AppImage

[Install]
WantedBy=multi-user.target
EOF

chmod +x /usr/lib/systemd/system/gsclient.service

Os comandos criam a pasta system no diretório systemd (caso não exista), geram o arquivo gsclient.service preenchido com o script de inicialização e concedem a ele permissão de execução.

3 - Realizar a inicialização do serviço no systemd:

systemctl daemon-reload
systemctl enable gsclient.service
systemctl start gsclient.service
systemctl status gsclient.service

Os comandos atualizam a lista de serviços do sistema, habilitam a inicialização automática, iniciam o serviço e, por fim, verificam o seu status de funcionamento.

#Opção 2: Init.d

1 - Caso não utilize systemd, verificar se o sistema utiliza init.d:

  • O comando abaixo deve executar sem erros:

ls /etc/init.d/

2 - Realizar a criação do serviço no init.d:

cat <<'EOF' > /etc/init.d/gsclient
#!/bin/sh
### BEGIN INIT INFO
# Provides:          gsclient
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# X-Interactive:     false
# Short-Description: GSClient script
# Description:       Start/Stop GSClient
### END INIT INFO

DESC="GSClient script"
NAME=gsclient

do_start() {
    echo "Starting $NAME!";
    /usr/sbin/gsclient.AppImage &
}

do_stop() {
    echo "Stopping $NAME!"
    killall gsclient
}

case "$1" in
    start)
        do_start
        ;;
    stop)
        do_stop
        ;;
esac
exit 0
EOF

chmod +x /etc/init.d/gsclient
update-rc.d gsclient defaults

Os comandos criam o arquivo gsclient no diretório init.d (preenchido com o script de inicialização), aplicam as permissões necessárias e configuram o serviço como automático.

Observação: Caso retorne comando não encontrado, significa que o sistema não utiliza init.d.

3 - Iniciar o serviço:

/etc/init.d/gsclient start

#Opção 3: Rc.local

1 - Caso não utilize systemd ou init.d, verificar se o sistema utiliza rc.local:

  • Verificar se a localização é: /etc/rc.local

ls /etc/rc.local
  • Verificar se a localização é: /etc/rc.d/rc.local

ls /etc/rc.d/rc.local

2 - Adicionar a inicialização do serviço no rc.local:

  • Caso seja: /etc/rc.local

grep -qxF '/usr/sbin/gsclient.AppImage &' /etc/rc.local || echo '/usr/sbin/gsclient.AppImage &' >> /etc/rc.local
chmod +x /etc/rc.local
  • Caso seja: /etc/rc.d/rc.local

grep -qxF '/usr/sbin/gsclient.AppImage &' /etc/rc.d/rc.local || echo '/usr/sbin/gsclient.AppImage &' >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

Os comandos adicionam a instrução de inicialização do serviço na última linha do arquivo rc.local (caso ainda não esteja presente) e concedem permissão de execução a ele.

3 - Iniciar o serviço:

  • Caso seja: /etc/rc.local

/etc/rc.local
  • Caso seja: /etc/rc.d/rc.local

/etc/rc.d/rc.local

Ambos os métodos de instalação contemplam o procedimento completo, uma vez concluído um deles com sucesso, a VPN já estará pronta para comunicação.

Abaixo, disponibilizamos alguns tópicos adicionais com instruções sobre como reiniciar o serviço, testar a conexão e verificar logs, entre outros.

#Inicialização

O serviço já é iniciado automaticamente tanto pelo script quanto no procedimento manual de instalação. Contudo, caso necessitem que seja iniciado ou reiniciado o serviço em algum momento, é possível realizar com os comandos abaixo, dependendo de qual inicializador está sendo utilizado:

1 - Systemd

systemctl daemon-reload
systemctl enable gsclient.service
systemctl start gsclient.service
systemctl status gsclient.service

2 - Init.d

/etc/init.d/gsclient start

3 - Rc.local

/etc/rc.local || /etc/rc.d/rc.local

4 - Manualmente

Caso a execução como serviço não tenha sido configurada, é possível iniciar manualmente:

/usr/sbin/gsclient.AppImage &

Apertar enter até ele voltar para o terminal normal (mostrando o usuário e etc).

#Teste de conexão

1 - Verificar se o serviço está rodando:

pgrep -af gsclient

2 - Execute um teste de comunicação utilizando telnet ou nc no IP 127.0.0.1 e na porta desejada:

  • Caso seja SiTef:

telnet 127.0.0.1 4096

Aperte Ctrl e c ou Ctrl e ç, q e enter para fechar a conexão.

#Logs

Existem diferentes arquivos onde podem ser armazenados os logs da VPN.

1 - Journal:

journalctl $(journalctl -F SYSLOG_IDENTIFIER | grep ^GSURF | sed 's/^/-t /') --no-pager -S today

2 - Syslog:

cat /var/log/syslog | grep GSURF

3 - Messages:

cat /var/log/messages | grep GSURF

#Arquivos

Segue abaixo todos os arquivos do GSClient AppImage em suas localização padrões, juntamente de informações sobre eles:

  • /usr/gsurf/certificado.pfx

    • Certificado.

  • /usr/gsurf/tk.dat

    • Autenticador (criado após primeira conexão).

  • /usr/gsurf/gsurfcli.txt

    • Identificação do terminal da CDP.

  • /usr/gsurf/region.txt

    • Região de conexão.

      • Deve conter escrito somente 3 ou sp2.

  • /usr/gsurf/service.cfg

    • Contém os serviços do terminal da CDP na última instalação.

      • Adição de novos serviços no terminal da CDP com porta ou categoria diferentes dos anteriores exigem reinstalação do certificado.

  • /usr/sbin/gsclient.AppImage

    • Arquivo de execução da VPN.

  • /usr/lib/systemd/system/gsclient.service

    • Inicializador do serviço pelo Systemd.

  • /etc/init.d/gsclient

    • Inicializador do serviço pelo Init.d.

  • /etc/rc.local

    • Inicializador do serviço pelo rc.local.

  • /etc/rc.d/rc.local

    • Inicializador do serviço pelo rc.d/rc.local.

#Histórico de Revisões

Descrição

Autor

Versão e Data

Criação do documento

Vitor Hugo

09/09/2025 – v1.0