Estou convertendo um laptop antigo no que basicamente será apenas um terminal para alguns dos meus outros computadores. Na maioria das vezes, só preciso fazer ssh em meus computadores e posso fazer isso com qualquer sistema operacional baseado em CLI.
Se isso fosse tudo que eu precisava, eu apenas instalaria o Debian e pronto. Mas também tenho alguns computadores com interfaces baseadas em navegador integradas, como uma máquina TrueNAS. Eu tenho uma máquina Fedora que também possui um "cockpit". Eu poderia instalar uma GUI de ambiente de desktop e simplesmente abrir as interfaces em um navegador e, na verdade, faço isso atualmente e funciona bem. Mas todo o ambiente de área de trabalho parece um exagero para o que eu preciso.
Então, qual é a maneira mais simples/leve/rápida de acessar uma interface baseada em navegador, mas manter o mais próximo possível de um sistema somente CLI?
Eu gostaria de testar os aplicativos reais que usaria antes de decidir. Minha ferramenta de fator comum mais alto para acessar uma página da web em um terminal é carbonyl - eu executo o binário, não o contêiner docker, e a 'vantagem' é que até as páginas da web modernas funcionam. E essa guia que você vê no topo não é meu navegador, é minha janela de terminal.
E não precisa de um DE completo, tanto quanto eu posso dizer, é totalmente baseado em frambuffer
Ainda é um pouco de trabalho em andamento - é preciso ctrl-c para fechar uma janela, sem guias, e acabou de obter uma barra de endereço quase funcional, mas onde brilha, brilha.
Existe a opção de usar o navegador da Web baseado em texto Lynx .
Dependendo das funções que você precisa, ainda pode funcionar, embora obviamente as imagens e potencialmente muitos recursos de HTML5 e javascript estejam fora. Se tudo o que você precisa é visualizar sites apenas de texto, pode pelo menos ser funcional.
Uma opção moderna alternativa é o Browsh , que pega páginas da Web adequadas e as transforma em texto para exibição em ferramentas CLI, como ssh. Destina-se a situações de baixa largura de banda e requer que um servidor tenha uma área de trabalho completa com o Firefox instalado, mas a máquina que o visualiza pode ser apenas CLI.
Não é. É provavelmente mais eficiente até mesmo para SSH do que quaisquer alternativas (das quais não existem muitas), mas é praticamente a única opção para navegadores – praticamente todos eles são programas X11, então você precisa executá-los em um servidor de exibição X11, o que significa executar o Xorg.
Tenha em mente que este é o Linux – o ambiente de desktop real não precisa ser KDE ou GNOME totalmente acelerado em 3D; você pode montar manualmente um ambiente básico que consiste em um gerenciador de janelas como o Openbox (ou twm ou Fvwm se quiser que pareça mais retrô ) e algumas janelas Xterm.
Embora hoje em dia o Linux use a configuração do modo kernel para a maioria dos (mesmo antigos) controladores gráficos, o que significa que inicializar o Xorg leva menos de um segundo, pois a GPU já está configurada, ao contrário dos velhos tempos em que o próprio Xorg tinha que fazer isso do zero. Ou seja, é bem possível ficar no console a maior parte do tempo e
startx
sempre que precisar, saindo do Xorg quando não for mais necessário.No entanto, eu não recomendaria isso; o console interno do kernel do Linux é lento e ineficiente (entre outros problemas) e provavelmente a pior escolha que existe para uso diário. Você terá uma experiência muito melhor SSHing do xfce4-terminal ou Xterm ou algo assim.
Mas, de qualquer forma, o navegador – não o resto da GUI! – será a parte mais ineficiente. Os navegadores e aplicativos da web modernos são grandes; você pode tentar o Ladybird, pois está quase utilizável, mas tentar carregar uma enorme GUI baseada em JavaScript no Firefox ou SeaMonkey moderno provavelmente consumirá 80% do uso da bateria. Tentar fazer isso em algo diferente do Xorg não vai mudar muito.
(Quero dizer, você provavelmente poderia ir até o fim com a configuração do "terminal" e usar seu laptop como um terminal VNC para se conectar a um navegador em execução em outra máquina...)
Você pode usar outro sistema que tenha uma interface GUI e um navegador, utilizando um túnel SSH no sistema do terminal como um proxy. Primeiro, configure o serviço/daemon SSH em seu sistema de terminal.
A questão não é totalmente clara sobre por que você deseja configurar um sistema CLI para acessar seus outros computadores; caso de uso. Se não, talvez alguém ache útil.
Para fazer isso, seu cliente precisa oferecer suporte à configuração do encaminhamento. Usarei o utilitário de linha de comando SSH como exemplo.
Uma opção é configurar uma única porta para encaminhamento, como
ssh -L LOCAL_PORT:HOST:HOST_PORT [USER@]SSH_SERVER
, e conectar seu navegador ahttp://localhost:LOCAL_PORT
. Para HTTP, você deseja a porta 80 e para HTTPS, a porta 443. Observe que, se for HTTPS, o navegador rejeitará o certificado por ter o nome de domínio errado, mas você ainda poderá prosseguir de qualquer maneira.Como alternativa, se o seu cliente for compatível, você pode configurar um proxy SOCKS usando o encaminhamento dinâmico, como
ssh -D LOCAL_PORT [USER@]SSH_SERVER
. Em seguida, configure seu sistema ou navegador para usar essa porta local como um proxy SOCKS. Usando esse método, um navegador aceitará um certificado HTTPS válido. Insira a URL original como você a inseriria se navegasse a partir do sistema do terminal (o host SSH).