从Internet到达我的局域网中的设备


18

我有一个嵌入式设备,当它与PC连接在同一路由器上时,可以通过以太网IP进行编程,如下所示:

在此处输入图片说明

是否可以通过Internet发送全部流量并仍然可以对其进行编程?为了使它更清晰一点,例如:

在此处输入图片说明


6
“以太网IP”?这不只是...一个类似LAN的常规网络吗?
grawity

“通过以太网IP编程” -究竟是什么意思呢这将有助于如果你可以指定你是在谈论我承担IDE连接到设备上指定的IP地址和TCP端口接收命令什么设备和IDE?。?
slhck

@grawity是的,它是常规LAN。像网络一样,在slhck,我使用的是codesys IDE和带有codesys Runtime的设备!
引擎

3
当然,显而易见的答案是IPv6。
迈克尔·汉普顿

1
@grawity 以太网/ IP 是一种工业自动化协议,请勿与基于以太网的IP混淆:(
richardb

Answers:


50

简单(不安全)的方法

您正在寻找的被称为端口转发[ 1 ] [ 2 ]

例如,让我们假设以下内容:

  • 您的可编程设备在端口上工作22并具有IP192.168.1.5

  • 您的公共IP是 122.176.11.55

然后,您可以进入路由器的设置并将WAN端口(例如8022)转发到192.168.1.5:22

现在,您可以通过访问122.176.11.55:8022而不是192.168.1.5:22在IDE中从Internet的任何位置远程访问设备。

请记住,除非您拥有静态IP,否则您的公共IP可以随时更改,在这种情况下,您应该签出动态DNS服务

注意:除非您的设备采用某种身份验证方法,否则几乎可以肯定有恶意的人都会在开放的Web上找到对该设备的访问权限。请参阅下面的安全替代方法。

安全(实际上并不复杂)的方法

保持PC(或树莓派或类似设备)连接到网络,然后通过诸如SSH之类的安全方式远程访问 PC ,然后通过LAN通过该设备对设备进行编程。
即使您的设备不使用TCP或UDP,这也可以使您工作:)

是的,有点乏味。但是安全。


10
如果OP设置开放端口以实现此目的,那么全世界其他所有人都可能会更改代码。除非也存在某种形式的身份验证,否则端口嗅探器迟早会找到端口,而黑客将尝试闯入,这是一个保证。
LPChip

@LPChip确实!我应该提到,我的坏。
rahuldottech

不错的补充。:)我会给你+1,但是我已经给它了耳环,因为即使没有警告,它也已经是一个不错的答案。:)
LPChip

2
@FreeMan之后,取决于您使用的端口,可能需要几天的时间才能出现僵尸爬虫程序,但是从某种意义上讲,如果不幸的话,它可能会在几分钟内发生。
LPChip

1
@IsmaelMiguel当然,您应该做所有显而易见的基本安全工作。我只是不知道在这种情况下它们是什么。
rahuldottech

11

唯一的正确答案可以是“ VPN”。

简单地使用IPv6会“起作用”(假设路由器未配置为不在设备上进行防火墙保护,并且所有ISP,设备和便携式计算机都支持IPv6),但是出于相同的原因,这是一个可怕的想法,原因是端口转​​发。

除了由知名IPv6的宣传推广,你其实并不希望任何在你的局域网是唯一可识别的,甚至从互联网访问的设备。不,那不是一件好事。

使用良好的旧IPv4,端口转发将“起作用”,但是它不仅使您而且所有人都可以访问该设备。没有人知道,所以这没问题吧?
好吧,有一群自动端口扫描程序运行24/7,并扫描随机的地址/端口,希望任何地方,任何地方都可以回答,所以通常没有任何设备可以在线回答外部请求并不是最佳选择。如果设备可以根据通过网络传入的内容愉快地进行编程,那将是灾难的秘诀。
以上原则上也适用于VPN,但如果要访问,它就可以达到最好的效果。唯一真正安全的事情是根本没有互联网连接,出于明显的原因,这是不切实际的选择。“没有互联网”下最安全的第二件事就是VPN。究竟只有一个设备(当然,这取决于,最多三个端口)上的一个端口,露出VPN ,没有别的,端口转发到互联网。

VPN使您-但没有其他人-可以通过Internet 访问LAN上的设备,就像您在同一个LAN上一样(尽管速度稍慢)。它可以防止未经授权的访问,提供机密性和数据完整性。

实际上,每个无路由器都支持至少一种开箱即用的VPN。不幸的是,这取决于您使用的路由器型号,可能是VPN的风格很差,或者关于如何配置远程计算机的文档也很少。尽管如此,尽管可能会想出如何进行配置的麻烦-如果您没有更好的选择,那么到目前为止,这是最好的选择!
最常见的NAS盒支持两种或三种不吸吮的VPN方法,每张20美元的信用卡大小的3瓦计算机都可以运行VPN服务器,这没有问题。甚至许多现代手机都支持VPN,而无需安装额外的软件,因此,当您使用手机的移动互联网时,您甚至可以访问家庭网络(甚至通过专用热点)。

例如,L2TP / IPSec可能不是最棒的选择,但它的99%不错,并且需要一分钟的时间在我的Disk Station和三星手机上进行设置。如果我的Windows笔记本电脑也要使用它(与手机无关),请再等一分钟。无需额外的软件。
OpenVPN大约需要3-5分钟的设置时间,因为您必须在笔记本电脑上下载安装客户端软件。但从更大的角度来看,与完全不安全相比,5分钟的设置算作“零”。


5
购买第三方服务不是唯一的答案。使用SSH或RDP可以获得相同的效果。
jpaugh

4
唯一的两个正确答案是VPN或SSH隧道...某些VPN协议在防止MITM方面也不是很好...
trognanders 18-11-14

5
SSH更便宜,更方便,更容易设置,并且在这种情况下可能是更好的选择
rahuldottech支持Monica

@jpaugh:VPN不涉及任何第三方服务。虽然我很同意可以使SSH正常工作,但在易于设置,无额外安装,无箍的通用可用性以及最后但并非最不重要的无缝可用性方面,它与VPN几乎没有什么不同。 。现在,关于RDP ...您当然在开玩笑吧?原始的实现不仅可能是世界上(或者至少在前五名中)利用最多的软件,而且协议本身固有地是不安全的,使用的是不可行的(可行的,不是理论上的)密码,并且使用TLS版本十年前被取代。
达蒙

4
-1仅表示标题中的“一个和唯一”,带端口转发的SSH也是完全有效的,并且可能更安全,因为您不必一定要对整个网络进行远程访问,只需一个设备的一个端口,并且很可能它很容易配置,而且您不必依赖路由器的随机软件实施功能(很少使用)。
比尔K

2

在路由器/安全网关设备中或在另一个将端口转发到该设备的设备中托管VPN。每当您要远程工作时,连接到VPN,您将看到嵌入式设备,就像它在本地网络上一样。或许,这将是一个好主意,将嵌入式设备在隔离的子网,以帮助阻止你的主网络的攻击,如果VPN或嵌入式设备受到损害。


1

在运行sshd的情况下,以合理安全的配置将不带IDE的Windows PC变成Linux PC。从路由器转发到Linux计算机上的SSH端口。使用SSH隧道连接到嵌入式设备IP。然后,在使用IDE在远程计算机上进行编程时,您将连接到localhost而不是LAN IP。

使用诸如SSH之类的强化服务在Internet上侦听是相当安全的。直接在互联网上聆听发展的声音是一个非常糟糕的主意。SSH是网守。如果您确保验证主机密钥,则它绝对可以抵御MITM。它使用良好的加密技术。隧道设置不涉及路由或桥接,而是看起来就像您是直接从SSHD机器连接一样。正确设置非常简单。


您可以...只需在Windows上运行SSH服务器,这里就不需要 Linux。
rahuldottech支持Monica 18'Nov

“然后,在使用IDE在远程计算机上进行编程时,您将连接到localhost而不是LAN IP。” 对我来说,这有点没意义,对吗?
rahuldottech

@rahuldottech SSH端口转发在tcp级别起作用。在服务器上,sshd打开与本地局域网上资源的连接,并通过SSH转发该套接字的内容。在远程计算机上,ssh客户端在本地主机端口上侦听。当您在该端口上连接到localhost时,它就是SSH客户端,它只是将tcp连接钩在一起。有点怪异,但由于没有IP路由,所以真的很通用!
trognanders

-1

最近,我遇到了一个更好的个人远程访问解决方案。首先让我们讨论问题的范围。有三个问题在起作用:nat,ip地址和安全性。例如,在您希望在家庭网络上运行ssh或Web服务器的常见情况下,传统方法是端口转发和动态dns以及行业标准的安全性最佳实践。这对您的情况不利,因为您的设备没有标准的安全性。通过使用ssh端口转发(而不是将设备打开到互联网)可以减轻这种情况,

但是,有一个更简单的解决方案,并且可以相信或不相信它是隐藏的服务。隐藏的服务基本上充当端口转发,但会自动处理nat遍历,并且地址没有更改,因此不需要动态dns。当然存在洋葱地址难以记住的问题,但是如果您是唯一的用户,则可以将其记录在一个项目文件中。我建议仍将它与ssh服务器一起进行解析以提供身份验证,但是您可以确定长洋葱地址就足够了。隐藏的服务还提供除最后一跳之外的整个链路的加密,因此要获得更好的唯一方法是端到端加密,但这取决于您正在编程的设备。


4
使用洋葱服务只会使这种方式变得更加复杂,而不会带来更多好处。Tor可能有用。在这种情况下不会。
rahuldottech
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.