浏览器访问swagger失败,显示错误ERR_UNSAFE_PORT

博客讲述了作者在部署jar包到服务器时遇到的问题,原本使用的端口6668在修改为8123后才能正常访问。原因是6668被谷歌列为禁用的特殊端口号,列举了部分被禁用的端口及其用途,提醒读者在部署时避免使用这些端口。

这几天一直在解决一个诡异的事:

我部署jar包到服务器后,明明postman修改IP和port后都能跑通,但对应的swagger修改URL后一直显示找不到页面!!

postman测试结果如下:

浏览器访问swagger结果如下:

原本的端口是6668,最后修改成8123重新部署后就成功显示了, 查询后得知,原来6668是被谷歌禁用的特殊端口号

列出谷歌禁用的端口号如下(各个浏览器情况会不同),以下就不要用来做部署的端口号了:

谷歌禁用端口号
端口号内容端口号内容
1tcpmux123NTP
7echo135loc-srv/epmap
9discard139netblos
11systat143imap2
13daytime179BGP
15netstat389ldap
17qotd465smtp+ssl
19chargen512print / exec
20ftp data513login
21ftp access514shell
22ssh515printer
23telnet526tempo
25smtp530courier
37time531chat
42name532netnews
43nicname540uucp
53domain556remotefs
77priv-rjs563nntp+ssl
79finger587stmp
87ttylink601/
95supdup636ldap+ssl
101hostriame993ldap+ssl
102iso-tsap995pop3+ssl
103gppitnp2049nfs
104acr-nema3659apple-sasl / PasswordServer
109pop24045lockd
110pop36000X11
111sunrpc6665Alternate IRC
113auth6666Alternate IRC
115sftp6667Standard IRC
117uucp-path6668Alternate IRC
119nntp6669Alternate IRC

### 关于Spring Boot本地运行时出现`ERR_CONNECTION_REFUSED`的解决方案 当在Spring Boot项目中启动调试并尝试通过Swagger或其他工具进行API测试时,如果遇到`ERR_CONNECTION_REFUSED`错误,通常意味着客户端无法与服务器建立连接。以下是可能导致该问题的原因及其对应的解决办法: #### 1. **检查应用程序配置文件中的端口设置** 默认情况下,Spring Boot应用会监听8080端口。然而,在某些场景下,开发者可能会修改`application.properties`或`application.yml`文件中的端口号。因此,需确认实际使用的端口是否匹配。 ```properties server.port=8080 ``` 如果没有显式指定端口,则可以假设其为8080。若发现端口冲突或者未正确绑定到预期端口,请调整上述属性值[^1]。 #### 2. **验证服务是否正常启动** 有时尽管程序看似已成功部署完毕,但实际上由于内部异常而未能真正完成初始化流程。此时可通过日志观察是否存在潜在隐患;另外一种情况是虽然进程存在却并未开启HTTP接口监听功能——这可能是由代码逻辑缺陷引起[^2]。 对于这种情况,建议仔细阅读控制台打印出来的消息记录来定位具体原因所在之处,并修复相应部分后再重新执行构建过程直至完全无误为止。 #### 3. **确保防火墙不会阻止流量进入目标机器上的特定端口** 即使一切看起来都按计划行事,外部因素也可能干扰通信链路的有效性。比如操作系统自带的安全防护机制(Windows Defender Firewall/Linux iptables etc.) 可能会对未经许可的数据包实施拦截操作 。所以有必要临时关闭这些保护措施来进行初步诊断测试 ,然后再考虑长期策略如何平衡安全性需求同功能性要求之间的关系 [^3]. #### 4. **核对URL路径准确性以及跨域资源共享(CORS)政策限制** 除了基本网络层面之外 , 还应该留意Web API设计本身所涉及的一些细节方面 . 如果前端页面试图调用后端RESTful风格的服务资源但是遭遇到了权限方面的阻碍的话(即所谓的Cross-Origin Resource Sharing issue),那么就需要从以下几个角度出发去寻找突破口 : - 确认前后两端交互过程中采用的方法类型(GET, POST, PUT...) 是否均已被允许列表覆盖. - 查看是否有额外头部字段附加进来需要特别处理的情况发生 . 针对以上提到的内容点我们可以做出如下改动以便更好地支持多源环境下的正常使用情景 : ```java @Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurer() { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") // 允许所有的路由都被访问 .allowedOrigins("*") // 放宽至接受任意来源站点发起请求 .allowedMethods("GET", "POST", "PUT", "DELETE"); // 明确列出可被执行的操作种类 } }; } ``` 值得注意的是这里仅作为演示用途展示了一种较为宽松的形式设定方式; 实际生产环境中应当依据具体情况制定更为严谨细致的规定条款以保障系统的整体健壮性和可靠性水平 [^5]. --- ### 总结 综上所述,面对`ERR_CONNECTION_REFUSED`这类常见却又棘手的问题时,可以从多个维度切入分析查找根本症结之所在并通过采取针对性强的技术手段加以克服化解困难局面达成最终目的 —— 让您的Spring Boot应用程序平稳高效地服务于广大用户群体之中! ```python print("Problem Solved!") ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值