Netscreen vpnc VPN 터널을 설정하고 다른 Linux 시스템(Ubuntu, Lubuntu, Antergos)에서 연결했는데 모두 동일한 동작을 보여줍니다.
내 컴퓨터에 연결된 USB 모뎀을 사용하여 인터넷에 연결하면 VPN 터널에 연결하여 HTTP, HTTPS, Ping, SSH 등 모든 서비스를 사용할 수 있으며 예상대로 작동합니다.
그러나 WiFi 핫스팟을 통해 인터넷에 연결하면(그리고 집, 사무실 및 일부 무료 공용 WiFi를 포함하여 몇 가지 다른 핫스팟을 테스트했습니다) SSH가 작동하지 않는 동안 HTTP, HTTPS 및 PING만 작동하는 것 같습니다. 중간 상태. 예비 협상:
$ ssh -v [email protected]
OpenSSH_6.7p1 Ubuntu-5ubuntu1.4, OpenSSL 1.0.1f 6 Jan 2014
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 123.45.67.89 port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /home/user/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/user/.ssh/id_rsa-cert type -1
[ ... cut ... ]
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.7p1 Ubuntu-5ubuntu1.4
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1
debug1: match: OpenSSH_5.1 pat OpenSSH_5* compat 0x0c000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr [email protected] none
debug1: kex: client->server aes128-ctr [email protected] none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<3072<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
잠시 후:
Connection closed by 123.45.67.89
라우팅은 USB 모뎀을 연결했을 때와 동일하게 설정되며, iptables는 비어있습니다. 왜 작동하지 않으며 작동하게 하려면 어떻게 해야 합니까?
답변1
이상적으로는 핫스팟과 클라이언트의 최대 전송 단위(MTU) 크기가 동일해야 하지만 클라이언트의 크기가 핫스팟의 크기를 초과해서는 안 됩니다.
클라이언트 터널 장치의 MTU 크기를 낮춥니다. 예를 들면 다음과 같습니다.
$ ip addr show dev tun0
6: tun0: <POINTTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1412 qdisc pfifo_fast state UNKNOWN group default qlen 500
따라서 여기서 MTU 크기는 1412바이트입니다. 조금 낮추세요:
$ ip link set tun0 mtu 1000
짜잔, ssh도 작동합니다.
이 변경을 영구적으로 적용하려면 개별적으로 수행해야 합니다.
이 문제는 다음에 설명되어 있습니다.위키피디아:
끝 노드에 표시되는 MTU(예: 1500)와 경로 MTU 간의 차이로 인해 경로 MTU 검색이 적용되고 부적절하게 구성된 방화벽 뒤에 있는 일부 사이트에 액세스할 수 없게 될 수 있습니다.
이 점을 지적해주신 @Jakuje에게 감사드립니다.