想用nomachine在自己的电脑上控制工控机,但是工控机不能连WIFI,平时联网都是手机插usb共享网络。
尝试过手机插工控机,同时手机开热点让电脑连接,发现nomachine无法识别,热点和共享不算在同一局域网下吗
工控机不能连WIFI怎么进行远程控制
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注本答案参考 多次询问 ChatGPT-3.5 后选择的最佳回答,若是满意,还请采纳,谢谢
- 通过有线网络进行远程控制(如果可行)
- 如果工控机有以太网接口,可以将工控机和你的本地电脑连接到同一个路由器的有线网络中。
- 在这种情况下,确保工控机和本地电脑在同一网段,例如,工控机的IP地址为
192.168.1.100,本地电脑的IP地址为192.168.1.101(假设子网掩码为255.255.255.0)。 - 然后在本地电脑上使用NoMachine软件,输入工控机的IP地址进行连接。
- 使用反向代理或远程桌面工具的特殊设置(针对不同网络情况)
- 设置端口转发(如果有可用的路由器管理权限)
- 如果工控机通过手机共享网络连接到互联网,而你想从外部网络(如你的家庭网络中的电脑)进行远程控制。
- 假设手机共享网络的IP地址为
172.20.10.5(这是手机共享网络分配给工控机的IP地址示例),并且手机有公网IP(通过运营商网络)。 - 登录到手机的网络设置(如果支持)或联系运营商(如果运营商提供此功能),设置端口转发。例如,将外部端口
5900(NoMachine默认端口)转发到工控机的5900端口。 - 然后在本地电脑上,使用手机的公网IP地址和转发后的端口号在NoMachine中进行连接。
- 使用TeamViewer或其他支持穿透网络的远程控制软件
- 一些远程控制软件具有网络穿透功能,如TeamViewer。
- 在工控机和本地电脑上分别安装TeamViewer软件。
- 在工控机上启动TeamViewer并记录下设备的ID和密码(如果是无人值守访问,需要设置固定密码等相关选项)。
- 在本地电脑上的TeamViewer软件中输入工控机的ID和密码进行连接。
- 设置端口转发(如果有可用的路由器管理权限)
- 关于热点和共享网络不在同一局域网的问题
- 热点和USB共享网络通常不在同一局域网下。
- 当手机通过USB共享网络时,它为工控机创建了一个网络连接,而当手机开启热点时,电脑连接的是手机的另一个网络接口创建的网络,这两个网络在网络拓扑结构上是不同的,所以NoMachine无法直接识别。
以下是一个简单的C++ 示例代码片段,用于获取本地网络接口信息(仅为示例,与远程控制问题相关但不完全是解决方案):
#include <iostream> #include <windows.h> // 适用于Windows系统,获取网络接口信息 #include <iphlpapi.h> #pragma comment(lib, "iphlpapi.lib") void printNetworkInterfaces() { PIP_ADAPTER_INFO pAdapterInfo; PIP_ADAPTER_INFO pAdapter = NULL; DWORD dwRetVal = 0; ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO); pAdapterInfo = (IP_ADAPTER_INFO *)malloc(ulOutBufLen); if (pAdapterInfo == NULL) { std::cout << "Error allocating memory needed to call GetAdaptersInfo" << std::endl; return; } // 调用GetAdaptersInfo获取网络接口信息 if ((dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)) == ERROR_BUFFER_OVERFLOW) { free(pAdapterInfo); pAdapterInfo = (IP_ADAPTER_INFO *)malloc(ulOutBufLen); if (pAdapterInfo == NULL) { std::cout << "Error allocating memory needed to call GetAdaptersInfo" << std::endl; return; } } if ((dwRetVal = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen)) == NO_ERROR) { pAdapter = pAdapterInfo; while (pAdapter) { std::cout << "Adapter Name: " << pAdapter->AdapterName << std::endl; std::cout << "Adapter Description: " << pAdapter->Description << std::endl; std::cout << "Adapter IP Address: " << pAdapter->IpAddressList.IpAddress.String << std::endl; pAdapter = pAdapter->Next; } } else { std::cout << "GetAdaptersInfo failed with error: " << dwRetVal << std::endl; } if (pAdapterInfo) { free(pAdapterInfo); } }你可以在主函数中调用
printNetworkInterfaces函数来查看本地网络接口信息,这有助于理解网络连接情况,以便更好地解决远程控制中的网络相关问题。解决 无用评论 打赏 举报- 通过有线网络进行远程控制(如果可行)