我有一个使用 Ubuntu Linux 的远程服务器,我想使用 PuTTY(plink) 从 Windows 机器与该服务器建立 SSH 隧道。我必须使用此方法来访问该服务器上的某些服务,因为防火墙阻止了该服务器上除 22 ssh 端口之外的所有端口。但是 SSH 隧道的连接速度非常慢。我已经使用 iperf 工具检查了速度。
以下是在不使用 SSH 隧道的情况下使用 iperf 的结果:
[ 5] local <remote_server_ip> port 5001 connected with <my_internet_ip> port 11154
[ ID] Interval Transfer Bandwidth
[ 5] 0.0-10.4 sec 5.12 MBytes 4.13 Mbits/sec
Run Code Online (Sandbox Code Playgroud)
这是通过 SSH 隧道使用 iperf 的结果:
[ 4] local 127.0.0.1 port 5001 connected with 127.0.0.1 port 38231
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-15.2 sec 896 KBytes 484 Kbits/sec
Run Code Online (Sandbox Code Playgroud)
速度确实不一样。这怎么可能?我应该做什么来修复它?
我已经设置了几个 100 个嵌入式盒子,通过打开反向 ssh 隧道来联系总部,每个盒子都在一个新端口下。这基本上工作正常,但今天我遇到了通过低带宽(或低质量?)GPRS 连接使用隧道的问题。
打开隧道的远程机器通过(目前未知的)3G 路由器连接到互联网,该路由器可能只有 GPRS,最多是 EDGE 连接。
登录到我的计算机,我可以看到ssh端口 1234 上的传入连接:
me@machine:~$ sudo nmap -sS -p 1234 --open localhost
Starting Nmap 5.21 ( http://nmap.org ) at 2014-11-27 15:27 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000070s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
PORT STATE SERVICE
1234/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
me@machine:~$
Run Code Online (Sandbox Code Playgroud)
现在,尝试打开 ssh 连接时出现错误Connection timed out: …
我使用跳转主机通过 SSH 连接到远程服务器。
我使用以下线性命令进行连接。
ssh -J jumpuser@jumphost:2455 remoteuser@remotehost
效果很好。
但对于新服务器我需要设置无密码 SSH,所以我尝试使用以下命令:
ssh-copy-id -J jumpuser@jumphost:2455 remoteuser@new-remotehost
但它会抛出错误:
/usr/bin/ssh-copy-id: ERROR: invalid option (-J)
很明显,我不能将 -J 与ssh-copy-id命令一起使用,但我想知道是否有其他方法。
我知道如何手动将密钥添加到远程服务器,但我想节省时间和精力(懒惰)。
我最近发现我的 ISP 禁用了端口 135。我的路由器后面有一台服务器和个人计算机。我和一个朋友正在做一个编程项目,由于这个端口被阻塞,遇到了一些 sql 问题。为了让他能够访问所有内容,我配置了 dynadns
个人电脑:192.168.1.100 服务器电脑:192.168.1.110
有没有办法让我将本地主机流量从端口 135 转发到端口 8081,然后让我的服务器从端口 8081 接收传入请求到 135?我听说过一些关于 ssh 隧道的消息,但是使用 Putty 登录到我的本地机器上,ssh 服务器正在运行以转发端口,这似乎很奇怪。
任何建议都会非常有帮助。
谢谢
编辑:我正在使用安装了 dd-wrt 的路由器并安装了 vpn 插件。我试图让 VPN 在我的 Windows 2003 计算机上运行,但在未配置 GRE 协议时遇到了问题。我将在我的路由器上尝试 vpn 选项,并在今天晚些时候发布我的结果。
我一直在使用远程桌面访问 Windows 7 PC,通过 SSH 连接建立隧道,现在成功了一段时间,直到它突然停止工作。
客户端也是 Windows 7,我仔细检查了隧道(使用腻子)设置是否正确,以及远程 PC 上是否启用了远程桌面连接。
在客户端上,我有一个静态 IP 为 10.0.0.1 的环回适配器,在 Putty 中,我将 10.0.0.1:33891 转发到远程服务器上的端口 3389。
直到大约一周前,这一切都很好,我想知道可能发生了什么?现在远程桌面客户端卡在“配置远程会话”中,然后超时。
有任何想法吗?
我有一个远程机器在example.com与sshd监听端口1234
和端口的网络服务5678。
出于某些原因,我想“本地化”对该 Web 服务的 http 请求。
当我执行
ssh -L 4321:example.com:5678 root@example.com -p 1234 -N
Run Code Online (Sandbox Code Playgroud)
在本地机器 ( 10.0.0.1) 上,我可以通过导航到以下位置来查看 Web 服务:
http://localhost:4321
Run Code Online (Sandbox Code Playgroud)
但是,如果我将浏览器指向:
http://10.0.0.1:4321
Run Code Online (Sandbox Code Playgroud)
我收到错误(错误 102: net::ERR_CONNECTION_REFUSED 如果这有什么区别的话)。
有没有办法使 ssh 端口转发在ip address而不是下可用localhost?
我需要它以便为 LAN (10.0.0.0/24) 上的其他计算机提供远程服务。
我正在尝试将 SSH 隧道设置为 Web 代理,以便在我在公共场所时使用。我已经有一个远程服务器可以使用,而且我过去也使用过这台服务器。但是,现在当我尝试时,我成功建立了 SSH 连接,但是网络浏览器没有为我访问的每个页面返回任何数据。
我使用的 SSH 命令是:
ssh -ND 8080 -p 20000 myusername@myserver.com
这正确连接。如果我不包括 -N,那么我会正确地看到一个远程 shell,因此连接成功。
但是,当我将浏览器设置为使用本地代理时 - 每个页面都不会返回 HTML 数据。它也不会返回任何错误。字面上只是一个空白页。请注意,如果我断开 SSH 连接 - 则浏览器会显示代理错误。所以浏览器肯定是在用代理做一些事情。
如果我尝试这是 Chrome,那么我会收到一个 chrome 错误,明确指出“没有返回数据”。如果我在 Firefox 中尝试这个,那么我只会得到一个空白页面。
请注意,我只是在一个公共场所尝试此操作。我目前正在度假,正在使用公寓的 wifi 连接。所以我想这可能与他们的设置有关。但是,鉴于我可以成功通过 SSH 连接到我的服务器 - 我不确定他们的配置中的哪些内容会有所作为。请注意,我还尝试通过代理包含 DNS 查找。
我希望本地主机访问我公司的 SMB 共享。这些位于 Win7 对等点上。这个对等点正在运行一个带有 Debian 的虚拟机,它本身正在运行一个 ssh 守护进程。
我可以轻松地创建从本地主机到 VM 的 ssh 隧道,但无法使 SMB 转发/代理工作。我在这方面读了太多,最终完全混淆了要转发到哪个接口和主机上的哪个端口等等......
如果我是对的,我必须将 localhost 的端口 139 转发到我的代理上的端口,并且在代理本身上将端口 139 转发到同一主机上的 ssh 隧道的端口?这应该有效吗?我应该如何设置每个主机来实现这一点?
网络大致如下:
localhost ===(ssh)=== |router| ===(ssh)=== debian vm ===(smb)=== win7
路由器只是将 SSH 连接转发到 VM。
我们有一个 SSH 隧道 ( ssh -ND 127.0.0.1:8080 user@example.com),如果将浏览器指向127.0.0.1:8080为 socks5 代理,它可以正常工作,但其他流量仍然没有通过这个隧道。
我如何才能让所有流量都通过 SSH 隧道?
我需要什么工具和设置?
我使用的系统是 Debian 和 MacOS,如果解决方案或多或少适用于两个平台,那么更好。
我有以下情况:
A -----|------ B -----|------ 工作
工作可以通过 SSH 连接到 B,而 A 可以通过 SSH 连接到 B,但除此之外,一切都受到了防火墙的保护。我想要做的实际上是在 Work 和 A 之间创建一个 SSH 隧道,以便我可以从 A 使用 VNC 进入 Work。
在工作中,我创建了一个远程 SSH 隧道:
ssh -R 5900:localhost:5900 B
Run Code Online (Sandbox Code Playgroud)
这意味着我可以从 B 进入 VNC 工作。但是我需要做什么才能将它扩展到 A。我尝试创建一个从 A 到 B 的本地 SSH 隧道,如下所示:
ssh -L 5901:localhost:5900 B
Run Code Online (Sandbox Code Playgroud)
但是它给出了,bind: Cannot assign requested address因为 5900 已经被分配了。
有没有人有任何想法如何做到这一点?