据我了解,防火墙(假设默认设置)拒绝所有没有先前对应的传出流量的传入流量。
基于Reversing an ssh connection和SSH Tunneling Made Easy,反向 SSH 隧道可用于绕过烦人的防火墙限制。
我想在远程机器上执行 shell 命令。远程机器有自己的防火墙,并在附加防火墙(路由器)后面。它有一个像 192.168.1.126(或类似的东西)这样的 IP 地址。我不在防火墙后面,我知道从 Internet 上看到的远程机器的 IP 地址(不是 192.168.1.126 地址)。此外,我可以要求某人ssh (something)首先在远程机器上以 root身份执行。
谁能一步一步地向我解释反向 SSH 隧道如何绕过防火墙(本地和远程机器的防火墙以及它们之间的附加防火墙)?
开关 ( -R, -f, -L, -N)的作用是什么?
当我打开这个 ssh 隧道时:
ssh -nXNT -p 22 localhost -L 0.0.0.0:8984:remote:8983
Run Code Online (Sandbox Code Playgroud)
尝试访问在 localhost:8984 上运行的 HTTP 服务器时出现此错误:
channel 1: open failed: administratively prohibited: open failed
Run Code Online (Sandbox Code Playgroud)
这个错误是什么意思,你可以在哪台机器上解决这个问题?
我必须在两台主机之间建立一个隧道。
为此,我ssh以这种方式使用:
ssh -L MY_LOCAL_PORT:FOREIGN_ADDRESS:FOREIGN_PORT MYUSER@SSH_SERVER
Run Code Online (Sandbox Code Playgroud)
之后,我登录到我的 SSH_SERVER。
我怎样才能避免这个功能?!我只需要建立一个隧道。我不必登录到我的 SSH_SERVER...
我试过 -N 选项,但它让我的 shell 很忙。
我很迷茫。从手册页:
-f Requests ssh to go to background just before command execution.
Run Code Online (Sandbox Code Playgroud)
使用该-f选项启动 SSH 后,我有一个工作隧道。但是用完之后不知道怎么和它进一步交互。例如,当我完成它时,我无法关闭 SSH 隧道。
我知道的常用方法不起作用。例如,不jobs返回任何内容。该~命令无法识别(无论如何我不知道如何使用它)。
但是,pgrep告诉我 SSH 隧道仍在运行(在我关闭终端等之后)。我如何与它互动?我该如何关闭它?
我有一个虚拟专用服务器,我想在我的服务器连接到 VPN 服务时运行网络服务器
当与我的提供商的 VPN 连接未启动时,我可以使用此服务器、ssh、scp、http 等做任何我想做的事情。
一旦 openvpn 运行并连接到提供商的 VPN 服务,服务器就无法通过任何方式访问,当然这是有充分理由的
图片是这样的:
My VPS ------------
+----------------+ / \
| | / Internet / 101.11.12.13
| 50.1.2.3|-----------------\ cloud /----<--- me@myhome
| | / \
| 10.80.70.60| / \
+----------------+ \ \
: \_____________/
: :
: :
: :
: :
+------------------+ :
| 10.80.70.61 | :
| \ | :
| \ | :
| 175.41.42.43:1197|..............:
| 175.41.42.43:yy|
| ..... |
| 175.41.42.43:xx|
+------------------+
Legend
------ Line No VPN …Run Code Online (Sandbox Code Playgroud) 我有两台电脑,我办公室的台式机(连接了网络摄像头)和网络上其他地方的笔记本电脑。
通常我会通过我的网络摄像头通过运行来查看我的办公室
ssh Office -Y "mplayer tv://device=/dev/video0"
Run Code Online (Sandbox Code Playgroud)
从我的笔记本电脑。我不喜欢 Xforwarding mplayer,所以为什么我不能通过/dev/video在我的笔记本电脑上运行它来隧道到我的电脑?
sudo mkfifo /dev/video1
ssh Office 'dd if=/dev/video' | sudo dd of=/dev/video1'
Run Code Online (Sandbox Code Playgroud)
然后观看网络摄像头(在我的笔记本电脑上)
mplayer tv://device=/dev/video1
Run Code Online (Sandbox Code Playgroud) 我可以使用我的家用计算机A通过 SSH 连接到服务器B,在该服务器B上无法访问外部网络。换句话说,所有从B到 Internet 的请求都会抛出一个错误:Network is unreachable。我可以重定向所有这些请求以通过可以不受限制地访问 Internet的计算机A吗?
服务器B是托管我的网站之一的服务器。我想下载文件以安装一些软件。但是连接被阻止了。我能够传输文件,但它很复杂,因为A和B上的软件版本不同,所以依赖关系不同,它需要A和B上的不同文件。
我在互联网上搜索,似乎我需要一个反向隧道。但我只找到了重定向端口的解决方案。但这不是我需要的,因为我不希望B访问A而是访问 Internet。
我正在尝试通过桥接服务器隧道连接到服务器。到目前为止,我已经能够使用以下命令从命令 shell 正常工作:
ssh -A -t bridge_userid@bridgemachine.com ssh -A remote_userid@remoteserver.com
Run Code Online (Sandbox Code Playgroud)
但是我一直在尝试将其包装到我的~/.ssh/config文件中,但遇到了麻烦。我试过了:
Host axp
User remote_userid
HostName remoteserver.com
IdentityFile ~/.ssh/id_rsa.eric
ProxyCommand ssh -A -t bridge_userid@bridge_userid.com ssh -A remote_userid@%h
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我收到以下错误消息remoteserver.com,我不确定是什么原因造成的:
ksh:SSH-2.0-OpenSSH_6.8^M:未找到
我知道当我登录时remoteserver.com,我的外壳是/usr/bin/ksh.
我尝试在配置文件中向 ssh 命令添加路径参数,但没有任何区别。
任何想法它可以是什么?
我来自这个问题:https : //superuser.com/questions/359799/how-to-make-freebsd-box-accessible-from-internet
我想了解这整个过程port forwarding。
我读了很多东西,但我没能理解端口转发本身的基本概念。
我拥有的:
坐在我家的 freebsd 服务器。
网件路由器
这就是我想要实现的目标:
能够通过互联网从 Windows 机器访问 freebsd 服务器,以便能够打开网络浏览器并访问互联网。
我还想从我拥有的 ubuntu 机器访问这个 freebsd 盒子。
如果有人可以帮助我,那就太好了。
这是我为端口转发所做的 netgear 路由器设置。

我使用 TightVNC 和 Remmina 远程桌面通过 VNC 将我的 Raspberry Pi 连接到我的 Ubuntu 笔记本电脑。它在大多数情况下都很好用,除了没有声音的事实。
我到处搜索,通过 VNC 查找转发声音,通过 SSH 隧道通过 VNC 查找声音,通过 PulseAudio Network Transparency 查找声音转发。我找不到怎么做。
有谁知道如何通过 VNC 获得声音?
ssh-tunneling ×10
ssh ×9
audio ×1
firewall ×1
freebsd ×1
networking ×1
openvpn ×1
pulseaudio ×1
remmina ×1
ssh-config ×1
tunneling ×1
video ×1
vnc ×1