我在一个内网服务器部署了rustdesk,这个内网服务器能够连接互联网。然后我使用frp将21116的tcp和upd还有21117端口代理到了一个公网IP。
现在有两个环境,一个是纯内网环境(没有互联网),一个是外网环境。我内网环境的主机填写的中继服务器的IP是那台有互联网的内网服务器的内网IP,我外网环境填写的服务器IP是公网的IP。
现在的问题是:我纯内网的主机之间可以正常使用rustdesk服务, 但是我互联网主机连接内网主机时报错找不到中继服务器,这是为什么?应该如何解决?
rustdesk内外网连接问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注本答案参考多次询问ChatGPT-3.5后选择的最佳回答,若是满意,还请采纳,谢谢。
以下是可能导致此问题的原因及对应的解决方案:
一、可能的原因
(一)网络访问限制
- 防火墙规则
- 在内网服务器上,虽然将端口通过frp代理到公网IP,但可能存在防火墙阻止了来自公网对这些代理端口的访问。例如,如果服务器使用
iptables作为防火墙,可能没有正确配置允许外部IP访问21116(TCP和UDP)和21117端口的规则。 - 在公网环境与内网环境之间的网络设备(如路由器等)上,可能存在访问控制列表(ACL)限制了特定流量的进出。
- 在内网服务器上,虽然将端口通过frp代理到公网IP,但可能存在防火墙阻止了来自公网对这些代理端口的访问。例如,如果服务器使用
- NAT配置问题
- 如果存在网络地址转换(NAT)设备,可能没有正确配置将公网IP的端口请求转发到内网服务器的相应端口。例如,公网IP接收到的针对
21116端口的请求没有被正确地转换并转发到内网服务器的21116端口。
- 如果存在网络地址转换(NAT)设备,可能没有正确配置将公网IP的端口请求转发到内网服务器的相应端口。例如,公网IP接收到的针对
(二)frp配置错误
- 服务端配置
- frp服务端配置可能存在错误。例如,在frp服务端配置文件中,对于代理端口的设置可能与实际需求不匹配,或者没有正确指定后端内网服务器的IP地址和端口。
- 客户端配置
- 外网主机上的rustdesk客户端配置可能不正确。虽然填写了公网IP作为中继服务器IP,但可能还需要其他配置项,如密钥或者认证信息等,如果这些信息与frp服务端或者rustdesk服务端的配置不匹配,就会导致找不到中继服务器的错误。
(三)网络拓扑问题
- 多层网络结构
- 如果存在多层网络结构,例如在内网服务器前面还有其他网络设备(如交换机等),可能会导致网络路径复杂,从而影响中继服务器的连接。例如,网络中的某些设备可能会对特定类型的网络流量进行限制或者重定向,导致连接请求无法正确到达中继服务器。
二、解决方案
(一)检查和调整网络访问限制
- 防火墙规则
- 在内网服务器上检查防火墙规则。如果使用
iptables,可以添加以下规则来允许公网对代理端口的访问(假设公网IP是合法访问源):- 对于TCP的
21116端口:iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21116 -j ACCEPT - 对于UDP的
21116端口:iptables -A INPUT -p udp -m state --state NEW -m udp --dport 21116 -j ACCEPT - 对于
21117端口(根据实际情况确定是TCP还是UDP或者两者都需要):iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21117 -j ACCEPT
- 对于TCP的
- 检查网络设备(如路由器)上的访问控制列表(ACL),确保允许公网到内网服务器代理端口的流量通过。
- 在内网服务器上检查防火墙规则。如果使用
- NAT配置
- 检查NAT设备的配置,确保公网IP的端口请求能够正确转发到内网服务器的相应端口。可以通过查看NAT设备的端口映射表或者转发规则来进行确认。
(二)检查和修正frp配置
服务端配置
仔细检查frp服务端的配置文件。确保代理端口(
21116和21117)的配置正确,并且后端内网服务器的IP地址和端口设置准确无误。例如,在frp服务端的frpc.ini(假设是frp客户端配置文件)中,对于端口代理的配置可能如下:[common] server_addr = <公网IP> server_port = 7000 # 假设frp服务端监听的端口是7000 [rustdesk_tcp] type = tcp local_ip = <内网服务器IP> local_port = 21116 remote_port = 21116 [rustdesk_udp] type = udp local_ip = <内网服务器IP> local_port = 21116 remote_port = 21116 [rustdesk_other] type = tcp local_ip = <内网服务器IP> local_port = 21117 remote_port = 21117
客户端配置
- 在外网主机的rustdesk客户端上,检查配置信息。确保填写的公网IP作为中继服务器IP是正确的,并且如果需要密钥或者认证信息,要与frp服务端或者rustdesk服务端的设置相匹配。
(三)排查网络拓扑问题
- 多层网络结构
- 绘制网络拓扑图,明确各个网络设备的位置和功能。检查网络中的每一层设备是否对rustdesk的连接流量有影响。如果可能,可以尝试简化网络结构或者调整网络设备的配置,以确保连接请求能够顺利到达中继服务器。例如,如果存在不必要的VLAN划分或者网络隔离,可以适当调整以允许rustdesk的流量通过。
解决 无用评论 打赏 举报- 防火墙规则