다음을 사용하여 SSH를 통해 Firefox를 시작해 보았습니다.
ssh -X user@hostname
그런 다음
firefox -no-remote
하지만 매우 느립니다.
이 문제를 어떻게 해결할 수 있나요? 연결 문제인가요?
답변1
일부 X 클라이언트를 원격으로 시작할 때 가장 큰 문제 중 하나는 SSH 오버헤드가 아니라 X 프로토콜입니다! X 프로토콜에는 클라이언트와 서버 사이에 많은 핑퐁이 필요하므로 원격 응용 프로그램의 성능이 확실히 저하됩니다.
"x2go"(기본 설정에서는 ssh에서도 작동함)와 같은 것을 시도해 보면 상대적으로 Firefox가 "빠르게 날아간다"는 것을 알 수 있습니다!
일부 배포판에서는 Debian-test 또는 Stable-Backports와 같이 즉시 사용 가능한 x2go 패키지를 제공합니다. 하지만 그렇지 않다면 참조하세요.http://wiki.x2go.org/doku.php/download:시작, 그들은 많은 배포판에 대해 사전 구축된 바이너리 패키지/저장소를 제공합니다. x2goclient(firefox와 상호 작용하려는 시스템) 및 x2goserver(firefox가 실행되어야 하는 시스템)를 설치한 다음 단일 X 응용 프로그램 또는 전체 데스크톱 보기 등에 대한 세션을 구성할 수 있습니다. 연결 자체는 SSH를 통해 발생합니다. 정말 좋은 도구네요 :)
이를 사용하려면 "x2goclient"를 실행하고 새 세션을 만들 수 있는 GUI를 시작합니다. 서버의 DNS 이름, 포트, SSH 데이터 등을 제공한 다음 "세션 유형"을 선택합니다. , 전체 원격 KDE 또는 GNOME 데스크탑을 원하거나 "단일 응용 프로그램"을 원하고 "firefox"를 입력합니다.
답변2
기본 SSH 설정으로 인해 연결 속도가 다소 느려집니다. 다음을 시도해 보십시오:
ssh -YC4c arcfour,blowfish-cbc user@hostname firefox -no-remote
사용되는 옵션은 다음과 같습니다.
-Y Enables trusted X11 forwarding. Trusted X11 forwardings are not
subjected to the X11 SECURITY extension controls.
-C Requests compression of all data (including stdin, stdout,
stderr, and data for forwarded X11 and TCP connections). The
compression algorithm is the same used by gzip(1), and the
“level” can be controlled by the CompressionLevel option for pro‐
tocol version 1. Compression is desirable on modem lines and
other slow connections, but will only slow down things on fast
networks. The default value can be set on a host-by-host basis
in the configuration files; see the Compression option.
-4 Forces ssh to use IPv4 addresses only.
-c cipher_spec
Selects the cipher specification for encrypting the session.
For protocol version 2, cipher_spec is a comma-separated list of
ciphers listed in order of preference. See the Ciphers keyword
in ssh_config(5) for more information.
여기서 중요한 점은 다른 암호화 암호(이 경우 기본값보다 빠른 arcfour)를 사용하고 전송되는 데이터를 압축하는 것입니다.
참고: 저는 이 주제에 대한 전문가와는 거리가 멀습니다. 위 명령은 어딘가의 블로그 게시물에서 찾은 후 사용했는데 속도가 크게 향상되었음을 느꼈습니다. 아래의 다양한 댓글 작성자는 자신이 말하는 내용을 알고 있으며 이러한 암호화 비밀번호가 최고가 아닐 수도 있습니다. 이 답변에서 유일하게 실제로 관련된 것은 스위치를 사용하여 -C
전송되는 데이터를 압축하는 것입니다.
답변3
ssh
다른 시스템을 통해 트래픽을 라우팅하기 위해 터널을 사용하는 것이 더 나은 경험을 했습니다. 어쨌든 SSH 액세스가 있으므로 설정이 매우 쉽습니다. 컴퓨터의 터미널에 다음을 입력하세요.
ssh -vv -ND 8080 user@yourserver
이 창을 열어두고 터널을 통과하는 데이터 흐름에 대한 자세한 메시지가 전달되는 것을 지켜보세요.
에서 firefox
기본 설정->고급->네트워크->연결: 설정으로 이동합니다.
선택하다수동 프록시 구성프록시를 추가합니다 SOCKS v5
.
SOCKS Host: localhost Port 8080
예를 들어 다음으로 이동하여 새 IP를 확인하세요.http://whatismyipaddress.com/.
다음과 같은 Firefox 플러그인을 사용할 수 있습니다.교활한 대리인에이전트를 동적으로 전환합니다.
답변4
X11은 더 이상 사용되지 않는 프로토콜입니다. 예를 들어, 소프트웨어가 동일한 위치에 문자 "A"를 계속해서 쓰면 이를 계속해서 다시 전송합니다. 많은 최신 GUI는 변경되지 않은 콘텐츠를 다시 그리는 경향이 있는 반면, X11은 모든 원자 화면 출력을 기꺼이 재전송합니다. 즉, 픽셀이 아닌 명령을 전송합니다. 이는 기본적으로 픽셀을 전송하는 VNC 및 Teamviewer의 작동 방식과 반대됩니다. 또한 이로 인해 한 명령이 다른 명령이 완료될 때까지 기다려야 하는 부분적으로 동기 작업이 발생합니다.
SSH는 CPU 성능을 많이 사용하며 멀티스레딩을 지원하지 않습니다. 예를 들어, 내 서버는 단일 코어에서 SSH를 100% 실행하지만 이는 압축되지 않은 데이터의 경우 약 20MByte/s, X11의 경우 압축된 데이터의 경우 약 5MByte/s에 해당합니다.
Firefox는 X11에 매우 비우호적입니다. X11이 효율적으로 처리할 수 있는 명령은 거의 없지만 대부분 작고 압축하기 어려운 비트맵을 사용하여 X11 비트플레인 작업에 압축합니다. 어쨌든 서로 가까워서는 안되는 두 가지를 하나로 모으는 것입니다. 최악의 경우: 작은 애니메이션. 64x64 픽셀 애니메이션 GIF라도 Firefox 연결이 정지될 수 있습니다.
즉, 좀 더 자세히 살펴보겠습니다.
고속 회선(예: 100Mbit 이상)에서는 압축이 뼈보다 더 큰 부담이 되는 경우가 많습니다. 귀하의 마일리지가 다를 수 있습니다. SSH에 "-C"를 사용해 보세요. SSH2를 사용하면 더 이상 압축 수준을 수동으로 선택할 필요가 없으며 "gzip -3"과 같은 것만 사용할 수 있거나 기만적인 터널링을 수행해야 합니다. 더 빠르게 압축하려면 상당히 빠른 "lzop -1"을 사용하고, 더 나은 압축을 위해서는 "xz -9e"를 사용하세요. 약 10년 전에 나는 "lzop -1"을 시도했지만 결과는 인상적이지 않았습니다.
암호화폐 속도는 CPU에 따라 크게 달라집니다. 바라보다https://possiblelossofcision.net/?p=2255시스템에서 가장 빠르게 작동하는 비밀번호를 확인하는 쉬운 방법입니다. 가장 빠른 것과 가장 느린 것 사이의 속도는 두 배나 빠를 것으로 예상됩니다. 지난 20년 동안 느린 비밀번호가 표준인 것을 본 적이 없지만, 비밀번호는 가장 빠른 비밀번호에 가까운 기본값으로 설정되는 경우가 많습니다.
이제 이것이 최선의 선택입니다. Firefox에서 하드웨어 가속을 비활성화하는 것입니다. Firefox는 어쨌든 네트워크를 통해 이를 비활성화하므로 이는 거의 필요하지 않지만 그렇게 할 수 없는 상황이 있으며 이 경우 Firefox가 매우 느려집니다.
Firefox, SSH 및 X11에 관한 모든 것입니다. 그래도 문제가 해결되지 않으면 다른 방법을 시도해 보세요.
X11-Server에서 비슷한 작업을 수행하여 SSH 없이 X11을 실행합니다.
startx -- -listen tcp &
sleep 5
export DISPLAY=:0
xhost +yourx11client +yourx11client.local
X11 클라이언트에서:
export DISPLAY=yourx11server:0
힌트, X11 서버 및 클라이언트 이름 지정은 "역전"됩니다. 서버는 모니터이고 클라이언트는 실행 중인 애플리케이션입니다.
이렇게 하면 Firefox 속도가 쉽게 10배 향상됩니다. 그러나 비디오와 같은 일부 페이지는 여전히 매우 느리고 응답하지 않을 수 있습니다.
보다 급진적인 단계: X11을 네트워크 프로토콜로 사용하지 않고 VNC를 사용합니다. 원격 화면 또는 완전히 가상화된 VNC 세션을 사용하여:
vncserver :1 -name VNC1 -geometry 1024x768 -depth 15
$HOME/.vnc/xstartup에서도 유사합니다:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
xterm -geometry 80x30
기본 X11 배경은 보기에 좋지 않고 압축하기 어렵기 때문에 xsetroot 명령을 사용하는 것이 좋습니다.
원하는 VNC 클라이언트를 연결하세요.
이 VNC 연결을 통해 TV를 시청하고 게임을 할 수 있었습니다. 여러 사용자를 위해 동시에 여러 vncserver를 실행할 수도 있습니다.
이것은 지금까지 가장 반응이 빠른 원격 시스템입니다.