问题标签 [nat]

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 投票
9 回答
58082 浏览

linux - 用于 ssh 的类似 teamviewer 的工具?

我想通过 SSH 从工作中访问我的家用计算机,但问题是我的家用计算机位于 NAT 路由器后面(我无权访问)。因为我的工作计算机安装了 CentOS 并且在代理后面,所以我无法使用 TeamViwer(电视在带有 wine 的 Linux 上移植,显然代理设置不起作用)。

有人知道适合我需要的程序吗?

谢谢,克劳迪乌

0 投票
1 回答
881 浏览

ruby - Rubygems 对 Amazon S3 上托管的规范文件的错误请求 400

尝试安装 gems 时,当它尝试从 production.s3.rubygems.org 获取规范文件时遇到“错误请求 400”错误。所有 Ruby 和 Rubygems 版本的问题都是一样的。

该系统在 VMWare ESX 托管的 Ubuntu 10.10 上运行,在 NAT 交换机(Linux -> ESX -> Intranet -> NAT)后面有桥接网络。我有一个相同的系统在运行正常的类似网络(Linux -> ESX -> Intranet -> 透明企业防火墙+代理)上的不同 ESX 上运行。apt-get 和其他网络工作正常。

有什么办法可以解决这个问题,还是我必须手动下载所有宝石?

0 投票
1 回答
523 浏览

sockets - socket远程连接问题C

我用 C 编写了一个简单的服务器应用程序。这个服务器除了打印接收到的消息之外什么都不做,然后退出。这是代码

我设法使用 telnet 建立连接并运行

其中 192.168.1.2 是服务器的本地 IP。该机器在路由器 ZyXel p-660HW-61 (192.168.0.1) 后面运行。问题是如果我指定机器的公共 ip (151.53.150.45),我无法访问服务器。我将 NAT 配置设置为从 20000 到 21000 的所有端口上的服务器本地 ip http://img593.imageshack.us/img593/3959/schermata20110405a22492.png

根据 canyouseeme.org/ 和 yougetsignal.com/tools/open-ports/ 的说法,端口 20600 似乎是打开的(实际上我可以在控制台中读到已收到数据包),但如果我运行

我收到“拒绝连接”错误。防火墙在路由器和服务器机器上都被禁用(即相同的运行 telnet)。

有什么帮助吗?

0 投票
2 回答
1753 浏览

linux-kernel - netfilter 预路由钩子中的源 nat

我们正在开发我们自己的内核模块,该模块在 netfilter 预路由钩子中执行高级源 nat。从 Linux 内核 2.6.32 (Ubuntu 10.04) 升级到 2.6.35 (Ubuntu 10.04 lucid-back-ports) 后,似乎 SNAT 化的数据包被简单地丢弃在 Linux 内核中。

我知道从不建议在一般用途的预路由挂钩中完成 SNAT(Netfilter 邮件列表),但是仍然有一些原因我们更愿意在做出实际路由决定之前进行源 natting。

有没有人开发过在 2.6.35+ linux 内核的 netfilter 预路由钩子中执行 SNAT 的内核模块的经验?究竟应该在 linux-kernel/netfilter-kernel-module 代码中进行哪些更改,以便不会丢弃经过 SNAT 处理的数据包?也许预路由中的 SNAT 对于 2.6.35+ Linux 内核来说只是一个坏主意,我们应该更好地使用 nf_marks 进行路由决策并在后路由中进行 SNAT?

我在 X86_64 上使用带有反向移植 Linux 内核 (2.6.35) 的 Ubunut 10.04。

0 投票
3 回答
2007 浏览

java - 通过使用第 3 方建立连接绕过防火墙

我正在开发一个程序,该程序需要能够雄辩地处理防火墙,同时允许两个客户端之间的直接通信。

我正在考虑类似于 Skype 的东西,其中第三方用于建立两个用户之间的连接,但是一旦建立连接,就不会将任何实际数据发送到第三方。

我知道几乎所有的防火墙都会阻止所有未经请求的传入流量,但是只要内部程序是第一个通信的,就很容易让程序建立连接。我不明白的是如何能够直接在两个客户端之间建立连接。

我怎样才能实现这样的事情?是否有任何适当的术语来描述这种技术的名称?一个客户端必须用 Java 编写,但服务器和其他客户端几乎可以使用任何我想要的语言。

如果已经问过这个问题,我提前道歉,我试着环顾四周,但我觉得我可能没有使用正确的关键字来找到它。

0 投票
2 回答
264 浏览

sockets - 获取传入 tcp 连接的端口

如何获取连接到 c# 应用程序的客户端端口?

0 投票
2 回答
7115 浏览

c++ - c++中的UPnP发现?

我正在尝试在 c++ 应用程序中实现 UpNp,我在 google 中找到了这段代码:

但它总是返回 false,并且我在启用 UPnP 的路由器后面。我在 google 上找到了其他一些资源,但它们过于依赖于它们所属的应用程序的其余部分,而且由于我对 c++ 有点陌生,所以我几乎无法理解它们。

有人有在 c++ 中使用 UpNP 的简单示例吗?


编辑:

调试表明:

总是-1(SOCKET_ERROR),有人知道为什么会这样吗?

0 投票
2 回答
6784 浏览

networking - NAT 转换在网络内部不起作用(发夹条件)

我正在编写一个 P2P 应用程序。对等点定期 ping 主服务器以更新其当前 IP/端口,因此当对等点想要访问另一个对等点时,它可以向服务器询问该信息。目前,对等方使用 UPnP 将 NAT(用于经典家庭设置)配置为可从外部访问。

所以一切正常,除非对等的客户端试图到达另一个(或相同的)对等的服务器并且两者都在相同的 NAT 后面。由于在这种情况下,客户端试图从 NAT 后面到达其自己的“外部”(公共)IP 地址,因此 NAT 不会进行端口转发,也无法路由 IP 数据包。

目前我正在考虑两种解决方案:

  • 使用 UPnP 查询 NAT 以查看端口转发到哪个本地 IP
  • 在主服务器上存储对等方的内部 IP

你能想到其他解决方案吗?主流 P2P 应用都采取了哪些策略来解决这个问题?

0 投票
2 回答
2351 浏览

windows - Windows 上的 FPipe.exe 之类的端口转发?

您好,我想将主机的端口 A 转发到另一台主机的端口 B,在 Linux 中我总是使用:

Windows 上的 FPipe 也成功了:

但如果连接速度 > 32KB/s,FPipe 应用程序将重置连接,我无法绕过这一点。

那么任何人都可以帮助我 - 告诉我如何正确使用 fpipe 或推荐另一个免费软件来做这件事吗?

非常感谢。

0 投票
1 回答
1399 浏览

networking - 同一 IP 后面的 DNS 主机

最近,我在 www.active-domain.com 购买了一个域名,我将它用于我的家庭网络,所以我们谈论的是 NAT 和动态 IP。由于我的 IP 是动态的,我无法创建委托来使用我自己的 DNS 服务器。active-domain 充当 DNS 服务器,所以我只能创建:A、CNAME、URL Redirect、URL Frame 和 TXT 记录。

也就是说,这是我的问题:因为我在 NAT 后面,是否可以在同一个 IP 后面创建多个主机?

示例:
我希望 srv1.mydomain.com 在我的网络中指向 192.168.0.101。
我希望 srv2.mydomain.com 在我的网络中指向 192.168.0.102。
但从外部看,两者都指向(示例​​)74.0.0.1

简而言之:
srv1.mydomain.com -> 74.0.0.1 -> 192.168.0.101
srv2.mydomain.com -> 74.0.0.1 -> 192.168.0.102

谢谢。