我可以通过以下方式建立从我的Windows计算机(localhost - eth1)到我的linux计算机(remotehost - eth0)的ssh连接:
ssh user@192.168.1.100
而不是使用它,因为我使用非标准端口,我必须指定端口:
ssh -p remoteSSH user@192.168.1.100
然后我将http和ssl转发到remotehost的http和ssl端口。我有一些我想在linux机器上使用的服务,所以我用它:
ssh -L 80:127.0.0.1:80
ssh -L 443:127.0.0.1:443
最后,我尝试“安全地”反转从(localhost)到(remotehost)并返回到(localhost)的流量。但是,通过此连接,我需要socks代理为127.0.0.1:proxy1。我成功创建了一个非socks代理,通过上面的转发方法将proxy1指向(localhost)上的[特定端口aka proxy2],但我试图避免不断修改html文件指向代理端口。
当我使用putty时,除了动态的socks连接之外,我连接了所有上述连接,这只能转发标准的http / s流量。我不想为互联网创建代理。我已经停止使用putty,因为它会丢弃连接,并且只要转发流量就会崩溃。后者是一个已知的错误:
http://www.chiark.greenend.org.uk/~sgtatham/putty/changes.html
These features were new in beta 0.61 (released 2011-07-12):
Bug fix: corruption of port forwarding is fixed (we think).
These features were new in beta 0.59 (released 2007-01-24):
Bug fix: SSH-1 connections tended to crash, particularly when using port forwarding.
These features were new in beta 0.58 (released 2005-04-05):
Fixed crashing bug with remote port forwarding.
These features were new in beta 0.53 (released 2002-10-01):
Various bug fixes, including (with luck) much greater stability in high-traffic port forwarding situations.
所以,在Windows框中,我移动到cygwin for openssh。到目前为止我提出的命令是:
ssh -t -t -L 80:127.0.0.1:80 -L 443:127.0.0.1:443 -p remoteSSH user@192.168.1.100 -R proxy1:127.0.0.1:randomport "ssh -D randomport 127.0.0.1"
要测试从proxy1到proxy2的连接,在Firefox中我设置:
HTTP Proxy: Port:
SSL Proxy: Port:
FTP Proxy: Port:
SOCKS Host: 127.0.0.1 Port: proxy1
SOCKSv5
No Proxy for:
我得到一个回复说代理服务器拒绝连接。我在Windows框中创建了规则以允许连接。我禁用了我的Windows防火墙,并通过以下方式允许在linux框中的iptables中进行连接:
$IPTABLES -A OUTPUT -o eth1 -p tcp -m tcp -s 192.168.1.100 -d 192.168.1.200 --dport randomport -j ACCEPT
iptables已经设置为允许本地流量。我使用密码保护的基于主机的私钥认证。我有syslog-ng(cygwin)日志记录ssh。
也许,作为问题的替代或补充,有人可以指导我使用Linux和/或Windows工具来帮助我诊断问题。对于Windows,我有带有Sysinternals Suite和Nirsoft Utilities的Windows系统控制中心。Windows系统:Windows 7. Linux:Slackware 64
http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx