TL;DR:我正在寻找一个脚本或一个 cron 作业,它会定期在 linux 主机(树莓派上的 fedora)上运行,它将检查路由器中是否仍然存在端口转发规则,如果不存在则添加它. 目的是始终可以通过 SSH、VNC 和传输 Web 界面从家庭网络之外的互联网上的任何机器访问 raspberry pi linux 主机。设置如下:
路由器:
Beetel 440Tx1 ADSL2 路由器+调制解调器+wifi。
设置:
路由器连接到互联网(ISP 宽带)并具有动态外部 IP。它为我的计算机提供了一个私人家庭网络,内部 IP 192.168.xy 也充当 DHCP。
主持人:
带有 Fedora Linux 的 raspberry pi ARM 主机,始终运行 ssh、vnc、传输守护程序服务器在启动时启动。它还具有 no-ip.com dyndns 免费 DUC(动态更新客户端),它会定期检查外部 IP 并将其绑定到主机字符串。所以我总是可以通过解析像 myrouter.no-ip.org 这样的 dyndns 字符串来找到我的路由器的外部 IP。pi 有一个静态内部 IP,如 192.168.1.z。
端口转发:
仅当通过以太网电缆或密码保护的 Wi-Fi 连接到该网络时,才必须使用带有工厂凭据的 GUI/浏览器登录路由器
http://192.168.1.1/html/index1.html
Run Code Online (Sandbox Code Playgroud)
我通过登录将外部 IP 上端口 22、5900、9091 上的任何流量转发到 pi 上 192.168.1.z 上的相应侦听程序(sshd、vncserver、传输守护程序)来设置规则。
问题:
当路由器(路由器)重新启动时,或者即使出现电力峰值并且 UPS 必须暂时介入,该路由器也会失去上述端口转发规则,并且通常会从我的 ISP …
由于Android应用程序运行在基本上是虚拟处理器的JVM(Dalvik VM)上,并且每个虚拟指令都必须映射到底层芯片组的本机指令,因此这种映射是否会由于这种映射的开销而导致更多的功耗?
这个问题可以扩展到 Java,也可以表述为“Java 应用程序是否使用更多功能?”。这就是 Android 手机与其他平台/手机相比电池寿命如此惊人的原因吗?
编辑:根据答案,我澄清了几点,因为我错误地将 JVM 和 Dalvik 互换使用。在这一点上,我谈论 Java 只是为了询问它是否使用更多功率,如果是,那么这在概念上是否也适用于 Android 并且是否会导致电池寿命缩短。
上下文:引自维基百科:
由于 Java 编程语言被编译为字节码(类似汇编)并在虚拟处理器上运行,因此它提供了真正的软件代码可移植性。此外,由于有一个适用于 Linux 的 JVM,并且 Linux 已被移植到开放硬件上,因此这种组合可以在整个堆栈中提供真正的应用程序可移植性。
功率:问题基本上归结为这一点 - 对于软件代码或应用程序的相同功能集,您的 CPU 时钟周期的百分比归因于运行时环境。这是现代 JVM 的即时编译环境,如果字节码被编译为底层芯片组的本机指令,那么运行时应该只在 jit 编译期间处于活动状态。那么在运行时环境中使用了多少 CPU 时钟周期,这预计会导致功耗开销。我只对功耗方面感兴趣,而不是与静态类型和构建语言相比的相对性能,并了解 Java 的优势。可能相关的子问题:
无论如何,感谢您的回答。