编辑(澄清)
Windows Client Remote Linux Server
|----------------------------------| |---------------------|
____________ ____________ ____________
| | | | | |
| Firefox | -------> | PuTTY | -------> | sshd | ---> (The Internet)
|____________| |____________| |____________|
Network settings: Interactive SSH Session sshd_config
Manual Proxy: (manual login) posted below
SOCKS Host: Configuration Settings:
localhost:9870 Connection|SSH|Tunnels
set to D9870
Run Code Online (Sandbox Code Playgroud)
上述配置工作得非常好,直到我们的 ISP 将服务器更换为新的服务器。“完全没问题”是指我可以浏览整个互联网,包括通常在中国被屏蔽的网站。它仍然工作完全正常,当我登录到另一个SSH会话上另一个服务器作为测试(生产Web服务器,而不是一个我可以宗旨,为这个)。在所有情况下,手动 SSH 登录都正常工作。
我需要弄清楚为什么它不适用于新服务器,因为该服务器的唯一目的是为我们公司提供此功能。
以前的帖子
我们的服务器提供商最近更改了我们的服务器和 IP 地址。旧服务器的硬盘移到新服务器上,除了IP地址更改外,配置应该是相同的。
在迁移之前,我在 Windows 机器上使用 PuTTY 将网络流量作为 SOCKS 代理通过服务器使用设置为 9870 的动态端口。迁移之后,我重新配置 PuTTY 以指向新 IP。但隧道不再有效(在 Firefox 中请求页面时超时)。
我无法访问旧服务器。但是新服务器上的 sshd_config 是:
# $OpenBSD: sshd_config,v 1.73 2005/12/06 22:38:28 reyk Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.
#Port 22
#Protocol 2,1
Protocol 2
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 768
# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO
# Authentication:
#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication yes
# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no
# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
# GSSAPI options
#GSSAPIAuthentication no
GSSAPIAuthentication yes
#GSSAPICleanupCredentials yes
GSSAPICleanupCredentials yes
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication mechanism.
# Depending on your PAM configuration, this may bypass the setting of
# PasswordAuthentication, PermitEmptyPasswords, and
# "PermitRootLogin without-password". If you just want the PAM account and
# session checks to run without PAM authentication, then enable this but set
# ChallengeResponseAuthentication=no
#UsePAM no
UsePAM yes
# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#ShowPatchLevel no
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10
#PermitTunnel no
# no default banner path
#Banner /some/path
# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
Run Code Online (Sandbox Code Playgroud)
编辑:-
到目前为止,我已经尝试了回复中的所有建议。还是行不通。托管服务器的数据中心的防火墙是否可能阻止 ssh 隧道?我在 PuTTY 中尝试过 D80 作为我的动态端口,但这也不起作用(应该吗?)。该服务器主要是一个网络服务器,但目前我们没有在其上运行任何网站,尽管 Apache 正在运行。
我查看了 putty.log ,虽然我不太明白,但有以下部分:
Event Log: Opened channel for session
Event Log: Local port 9870 SOCKS dynamic forwarding
Outgoing packet type 98 / 0x62 (SSH2_MSG_CHANNEL_REQUEST)
00000000 00 00 00 00 00 00 00 07 70 74 79 2d 72 65 71 01 ........pty-req.
00000010 00 00 00 05 78 74 65 72 6d 00 00 00 50 00 00 00 ....xterm...P...
00000020 18 00 00 00 00 00 00 00 00 00 00 00 10 03 00 00 ................
00000030 00 7f 80 00 00 96 00 81 00 00 96 00 00 .............
Outgoing raw data
00000000 ed 9b 4d c5 0c 7f c4 67 e7 ad 96 3f 5a fd 26 fb ..M....g...?Z.&.
00000010 48 27 cd e9 b9 bd 4f 52 2c e0 d3 4e de 62 5d ab H'....OR,..N.b].
00000020 c0 10 51 a9 80 8e 68 9c 6d 4c bf ab 75 e9 e1 7a ..Q...h.mL..u..z
00000030 bf 66 e3 ff 6f 94 fe f9 9e 78 3d b5 e0 a6 8c fd .f..o....x=.....
00000040 61 5b 69 b4 ec 7c 30 a0 29 87 9c 2c d2 94 57 bd a[i..|0.)..,..W.
00000050 6e 4b 9c 6c d0 39 cc 46 66 3c 5d 7d dc 37 76 cf nK.l.9.Ff<]}.7v.
00000060 9b c7 24 46 ..$F
Incoming raw data
00000000 30 ae 0c b2 25 a9 c1 73 47 1f 2d 6a 5e 5b 7f 88 0...%..sG.-j^[..
00000010 99 99 0c 28 ff 87 5b 0e 82 61 f5 33 81 3d 8a 7d ...(..[..a.3.=.}
00000020 d6 b7 3d 6f ..=o
Incoming packet type 99 / 0x63 (SSH2_MSG_CHANNEL_SUCCESS)
00000000 00 00 01 00 ............
Run Code Online (Sandbox Code Playgroud)
在我看来,远程服务器似乎接受了端口转发。
进一步编辑:-
我尝试连接到另一台服务器,我经常使用 PuTTY (D9870) 中完全相同的 SSH 隧道设置连接到该服务器
这立即起作用(Firefox 将 PuTTY 视为 SOCKS 代理),我立即能够访问在我的位置 [中国] 被阻止的站点。
这个测试最有趣的是,服务器下面的受访者规定的netstat -an --inet测试也没有显示 127.0.0.1:9870。
我想我需要清楚地指出我使用的是 Windows 机器来安装 PuTTY/Firefox 客户端。我正在尝试使用远程 Linux 服务器通过隧道传输网络流量,以便我可以安全地访问在中国被阻止的网站。在我看来,建议的 netstat 测试应该在我的 Windows 机器上运行(在这种情况下,它使用了错误的 netstat 语法)。
应 rwired 的要求,我重新发布我之前的评论作为答案,即:
远程 Linux 服务器能否与 TCP 端口 80 建立出站连接?例如,如果您从服务器“telnet www.google.com 80”,您会得到“连接已建立”吗?还是只是挂了?
其预期含义是有东西阻塞了出站连接,rwired 发现确实如此。