问题标签 [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.
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 数据传输回来。如果我在这里遗漏了什么,请告诉我。再次非常感谢您的帮助。
bash - SSH隧道复杂问题
对于一个编程项目,我必须做一些奇怪的设置。现在,首先,我在两台服务器上都有 root 权限,我认为 ssh 隧道是最好的方法(如果你有更好的想法,请随时告诉我)
我必须编写一个在 IRC 服务器上运行的软件。这并不难,但 IRC 服务器只能在 localhost 上访问。所以我必须先 ssh 到盒子,然后使用 irssi 或类似的东西连接到 localhost:6667
现在我尝试从第二台服务器(我一直在运行 irssi)做一个 ssh-tunnel,然后通过隧道连接到服务器并使用 localhost,例如:
现在,当我使用 irssi 连接到 localhost:2000 时,这并没有按预期工作。我不明白为什么,你有什么提示吗?如果你能帮助我,我会很高兴。
问候
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 版中集成一些框架。
java - Java/或Android IP隧道
我们需要将云服务器上的端口隧道连接到 Android 设备。现在,我们在 Android (Jsch) 上使用 SSH 客户端来启动反向端口转发。这可行,但我们不需要/不想要加密/身份验证的开销。
本质上,可以建立从客户端 (Android) 到云中服务器的简单 IP 隧道。
谷歌搜索这个主题并不乐观,所以我想我会在这里尝试一下,看看我是否能找到任何线索。显然,我们宁愿不要自己从头开始构建它。
linux - 如何只允许隧道连接到端口?
我想让一个 git-daemon 通过一个永久的 ssh 隧道。我完成了这个任务。如何阻止与 GIT_DAEMON 端口(在我的情况下为 9418)的任何远程非隧道连接?
我已经在 iptables 中尝试过简单的规则(阻止除 localhost 之外的所有内容):
但它也会阻塞隧道(因为它保存了源 IP 地址)。如果我有更多的防火墙主机,可以通过阻止与该端口的任何远程连接来简单地完成,但我需要这台主机来完成这项工作。
隧道是通过以下两种方式之一创建的:
对于 Windows:
对于 Linux:
ssh - SSH over SSH(或如何通过 SSH '代理' SSH)
我正在寻找一种通过 SSH 进行 SSH 的方法(如标题所示)。
所以,我知道我可以做到:
或者我可以将 ProxyCommand 与 一起使用nc
,但我不想通过连接到每个 farAwayServer 来使用到 proxyServer 的一个连接。而且我知道我可以使用ControlMaster
,但我对这个解决方案也不是很满意。
我更喜欢类似的东西:
这个解决方案是否存在,如果是,如何?
谢谢你的帮助
git - git push 使用端口转发(SSH 隧道)
我正在尝试访问托管在防火墙后面的集群上的 GIT 存储库。当我在校园内(位于防火墙后面)时,我可以直接访问集群,并且可以从校园外通过 SSH 连接到特定机器,然后在需要时通过 ssh 连接到集群。
我尝试使用以下方法设置隧道:
但我仍然无法从我的机器上运行“git push”。我知道我错过了一些东西,但不能完全弄清楚。
编辑:我修改 ~/.ssh/config 有:
运行 git push 时出现错误:
linux - 创建压缩隧道
我正在尝试压缩端口 6999 上的所有流量并将其通过管道传输到端口 7000。我正在考虑为此创建一个隧道。我想使用英特尔的性能原始压缩库而不是 gzip 等。
任何想法或想法都非常感谢。
提前谢谢了,
c++ - Http隧道示例
是否可以在 Delphi 或 C++ 中创建 HTTP 隧道?
我的应用程序连接到几个不属于我工作的公司的 HTTP 服务器。因此,我们的用户需要打开他们的防火墙端口以允许这些连接。我考虑在我的公司创建一个隧道,并通过这个隧道重定向我的应用程序发出的 HTTP 请求。这样,我的客户只需要打开一个端口,隧道就会处理所有请求。所有请求都是使用 indy 组件通过 POST 或 GET 发出的。
编辑:我不能使用 HTTP 代理。我的一些用户已经拥有了自己的 HTTP 代理,并且不可能同时连接到两个不同的代理服务器。
bash - 我正在尝试在 Mac 上设置 showoff.io 或 localtunnel,但我被卡住了
我根据showoff.io上的说明安装了 gem ,但是当我尝试运行时
它不起作用,我得到
在他们的常见问题中,他们提到了跑步
如果发生这种情况,但我不知道如何阅读我得到的内容:
他们这样说:
这将列出 showoff-io gem 中的所有文件。查找 bin/show 脚本。将该文件夹添加到您的 $PATH,或者将脚本符号链接到您的 $PATH 上已经存在的位置。例如:
但显然复制和粘贴不会做任何事情,因为这些只是示例路径。
我确信这是非常基本的,但我是这方面的新手。我需要做什么?
谢谢!