我通过在远程服务器上运行这个命令使用ssh客户端作为SOCKS服务器:
ssh -f2qTnND *:1080 some-server-user@localhost
这里只有一个问题: 任何人都可以连接到服务器并使用它的互联网连接。
选项:
iptables来过滤对远程服务器的访问,但客户端从各种非静态分配的IP地址连接到服务器,所以filter应该被非常频繁地编辑,这是非常尴尬的。 SOCKS服务器(例如Dante )。 最终,如果没有其他更简单的方法,这是最后的select。 Linux上Linux ,而且设置隧道(例如Windows + Putty )又很难。 最终用户设置本地SOCKS服务器也比较困难(例如记住命令,input错误)。 有没有办法将身份validation添加到使用ssh客户端的SOCKS服务器?
附加问题 :如何在客户端和服务器之间添加encryption(使用ssh客户端)?
你说的是在Windows中隧道很尴尬。 尝试Bitvise Tunnelier ,使用起来非常简单。
在OpenSSH客户端的socks服务器中没有可用的用户authentication。
奖金问题:如何在客户端和服务器之间添加encryption(使用SSH)?
SSH已经被encryption了,因为你连接到本地主机,所以你没有任何意义。 你最好禁用encryption速度更快。 袜子是没有encryption的,如果有的话,它可能不会为大多数客户的任何方式工作。
SSH是您的身份validation
如果你只想要本地主机访问绑定它,
ssh -D localhost:port user @ host
这确保只有本地程序才能访问端口。 vs *:port这是绑定到本地主机和所有你的地址。
如果你想减less你的SSHlogin尝试只是改变默认端口和速度限制它与iptables,
我也build议设置fail2ban http://www.fail2ban.org/wiki/index.php/Main_Page
为什么要在顶部添加一个额外的身份validation级别? 如果你太懒了,只需要设置ssh密钥对,并用所需的设置对腻子进行快捷方式。