问题标签 [tunnel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3748 浏览

sockets - 使用 TUN/TAP 读取传入的数据,封装为 UDP 并传输

我有一个 tun/tap 设备,用于从一个接口读取传入的数据包,并通过另一个接口将它们作为 UDP 数据包发送。我可以实现这一点,可以读取发送到 tun/tap 接口的 ICMP 包,还可以使用 UDP 远程获取它们。但是当我尝试将输入接口的默认网关更改为 tun/tap 设备时,就会出现问题,以便我可以从 tun/tap 读取所有传入数据。完成后,由于路由不正确,我无法发送 UDP 数据包。

我还向您尝试了套接字通信中的“SO_BINDTODEVICE”选项,但仍然没有用。请注意,我没有在 tun/tap 中使用 write() 方法。我只是使用了 read() 函数,收集数据并通过 UDP 套接字通信发送它们。

请让我知道我的方法是否错误或任何其他解决方法来克服这个问题。谢谢。

谢谢罗布。

我想要实现的是在高延迟通道中模拟基于 IP 的标头通信(ROHC)。

为此,我有 4 个虚拟机。VM1 是一台普通的台式机。VM2 是一个网关,它使用 tun/tap(来自 VM1)获取数据包,并与 VM4 进行基于 UDP 的通信。VM3 是可以设置延迟、错误率等参数的通道。VM4 连接到 WAN。VM1 中的用户应该能够像平常一样浏览 WAN。请找到下面的图表。

更新:

谢谢汤米。你的解决方案奏效了。我可以通过一种方式将 UDP 数据包传送到最终的 NAT 网关。但是直到现在我都无法找到相反的工作方式。我尝试使用 iptables 启用伪装,并在 VM1 上设置到 tuntap 的主机路由,但它不起作用。我对此有一些疑问。1) 在 VM4 中,我接收 UDP 数据并写入 tun/tap。这将由内核路由到 WAN。但是对于传入的数据包,我是否需要再次使用 tun/tap 读取?在这种情况下,我是否需要在不同的线程中进行读写?我问这个是因为我需要将它们也作为 UDP 数据传输回来。如果我在这里遗漏了什么,请告诉我。再次非常感谢您的帮助。

0 投票
1 回答
625 浏览

bash - SSH隧道复杂问题

对于一个编程项目,我必须做一些奇怪的设置。现在,首先,我在两台服务器上都有 root 权限,我认为 ssh 隧道是最好的方法(如果你有更好的想法,请随时告诉我)

我必须编写一个在 IRC 服务器上运行的软件。这并不难,但 IRC 服务器只能在 localhost 上访问。所以我必须先 ssh 到盒子,然后使用 irssi 或类似的东西连接到 localhost:6667

现在我尝试从第二台服务器(我一直在运行 irssi)做一个 ssh-tunnel,然后通过隧道连接到服务器并使用 localhost,例如:

现在,当我使用 irssi 连接到 localhost:2000 时,这并没有按预期工作。我不明白为什么,你有什么提示吗?如果你能帮助我,我会很高兴。

问候

0 投票
2 回答
9619 浏览

linux - socat:通过 TTY 隧道 IP

是否可以使用socat实用程序在类似 ttyS0 的串行(调制解调器)设备上获得双向 IP 隧道?我尝试使用 TUN 选项,但仍然无法得到结果。

欢迎任何建议:)

更新:

PC1:

PC2:

之后,我看到 tun0 接口在两端都有正确的地址,但我无法从另一个接口 ping 通。取而代之的是,当我发送带有ping -c 1 192.168.1.1远程socat进程退出的数据并且它的 tun0 设备被破坏时。有什么建议么?..

更新2:

当我们尝试仅使用 socat 建立 TCP/IP 串行隧道时,会出现框架问题。socat 的开发者 Gerhard Rieger 对我说:

恐怕你是对的。tun over 数据报套接字工作,并且 - 幸运的是 - 也通过管道。但是在串行线上,数据包边界可能会消失,这在 tun 接口上发送数据时是致命的。

抱歉,我现在无法提供基于 socat 的解决方案。不过,我会尝试在以后的第 2 版中集成一些框架。

0 投票
1 回答
1398 浏览

java - Java/或Android IP隧道

我们需要将云服务器上的端口隧道连接到 Android 设备。现在,我们在 Android (Jsch) 上使用 SSH 客户端来启动反向端口转发。这可行,但我们不需要/不想要加密/身份验证的开销。

本质上,可以建立从客户端 (Android) 到云中服务器的简单 IP 隧道。

谷歌搜索这个主题并不乐观,所以我想我会在这里尝试一下,看看我是否能找到任何线索。显然,我们宁愿不要自己从头开始构建它。

0 投票
2 回答
1779 浏览

linux - 如何只允许隧道连接到端口?

我想让一个 git-daemon 通过一个永久的 ssh 隧道。我完成了这个任务。如何阻止与 GIT_DAEMON 端口(在我的情况下为 9418)的任何远程非隧道连接?

我已经在 iptables 中尝试过简单的规则(阻止除 localhost 之外的所有内容):

但它也会阻塞隧道(因为它保存了源 IP 地址)。如果我有更多的防火墙主机,可以通过阻止与该端口的任何远程连接来简单地完成,但我需要这台主机来完成这项工作。

隧道是通过以下两种方式之一创建的:

对于 Windows:

对于 Linux:

0 投票
2 回答
2425 浏览

ssh - SSH over SSH(或如何通过 SSH '代理' SSH)

我正在寻找一种通过 SSH 进行 SSH 的方法(如标题所示)。

所以,我知道我可以做到:

或者我可以将 ProxyCommand 与 一起使用nc,但我不想通过连接到每个 farAwayServer 来使用到 proxyServer 的一个连接。而且我知道我可以使用ControlMaster,但我对这个解决方案也不是很满意。

我更喜欢类似的东西:

这个解决方案是否存在,如果是,如何?

谢谢你的帮助

0 投票
2 回答
4293 浏览

git - git push 使用端口转发(SSH 隧道)

我正在尝试访问托管在防火墙后面的集群上的 GIT 存储库。当我在校园内(位于防火墙后面)时,我可以直接访问集群,并且可以从校园外通过 SSH 连接到特定机器,然后在需要时通过 ssh 连接到集群。

我尝试使用以下方法设置隧道:

但我仍然无法从我的机器上运行“git push”。我知道我错过了一些东西,但不能完全弄清楚。

编辑:我修改 ~/.ssh/config 有:

运行 git push 时出现错误:

0 投票
1 回答
1676 浏览

linux - 创建压缩隧道

我正在尝试压缩端口 6999 上的所有流量并将其通过管道传输到端口 7000。我正在考虑为此创建一个隧道。我想使用英特尔的性能原始压缩库而不是 gzip 等。

任何想法或想法都非常感谢。

提前谢谢了,

0 投票
3 回答
4000 浏览

c++ - Http隧道示例

是否可以在 Delphi 或 C++ 中创建 HTTP 隧道?

我的应用程序连接到几个不属于我工作的公司的 HTTP 服务器。因此,我们的用户需要打开他们的防火墙端口以允许这些连接。我考虑在我的公司创建一个隧道,并通过这个隧道重定向我的应用程序发出的 HTTP 请求。这样,我的客户只需要打开一个端口,隧道就会处理所有请求。所有请求都是使用 indy 组件通过 POST 或 GET 发出的。

编辑:我不能使用 HTTP 代理。我的一些用户已经拥有了自己的 HTTP 代理,并且不可能同时连接到两个不同的代理服务器。

0 投票
1 回答
1155 浏览

bash - 我正在尝试在 Mac 上设置 showoff.io 或 localtunnel,但我被卡住了

我根据showoff.io上的说明安装了 gem ,但是当我尝试运行时

它不起作用,我得到

在他们的常见问题中,他们提到了跑步

如果发生这种情况,但我不知道如何阅读我得到的内容:

他们这样说:

这将列出 showoff-io gem 中的所有文件。查找 bin/show 脚本。将该文件夹添加到您的 $PATH,或者将脚本符号链接到您的 $PATH 上已经存在的位置。例如:

但显然复制和粘贴不会做任何事情,因为这些只是示例路径。

我确信这是非常基本的,但我是这方面的新手。我需要做什么?

谢谢!