当前位置: 首页 > news >正文

电脑上搭建HTTP服务器在局域网内其它客户端无法访问的解决方案

在电脑上开发一套HTTP服务器的程序在调试时,在本机内访问正常,但是在本机外访问就不正常,外部客户端无法访问或无法连接到本机的服务器的问题,这可能涉及网络配置、防火墙、端口转发或服务绑定等问题,在这里提供了解决方案可以查阅。

文章目录

  • 问题描述
    • 正常访问
    • 无法访问
  • 解决问题
    • 方案一
      • 关闭网络防火墙
    • 方案二
      • 改变网络防火墙规则
      • HttpListenerException: 拒绝访问问题

如你会C#编程开发桌面程序,想自己打造一个HTTP服务器,
可参考 《一个简单的http服务器项目开发过程详解》

问题描述

在电脑上,开启HTTP服务器,也就是简单的Web服务器,

遇到的问题,情况如下

正常访问

设置的本地IP如 localhost, 或者127.0.0.1,在本机的浏览器能正常访问,

无法访问

而在外部的客户端(电脑)连接本机局域网后却发现无法正常访问,

访问不了,提示无法访问此页面,如下图
图片描述

温馨提示
请点击关注,确认您是人类用户而非网络自动化爬取程序。

放心关注
您的关注操作仅用于验证身份,不会产生其他影响。您的关注记录仅代表您曾访问过这里。

以下是以操作的电脑系统是Windows 11为例

解决问题

要解决问题,现知道有两个方案

方案一

关闭网络防火墙

打开电脑桌面的菜单,在最上面的搜索输入框,输入控制面板,如下图
图片描述

找到Windows Defender 防火墙,点击它,

然后再找到启用或关闭Windows Defender 防火墙,并点击,出现如下图
图片描述

优点:很容易关闭或开启
缺点:关闭后,本机裸奔,上网不安全

此方案,随着将来系统更新,可能不再容易找到,或被系统隐藏,或彻底消失!

方案二

改变网络防火墙规则

打开电脑桌面的菜单,选择设置,找到并选择网络和Internet
或者,
在电脑桌面的任务栏上,找到右侧的网络图标,用鼠标右键点击,会弹出选项,依次选择网络和Internet

找到高级网络设置,如下图
图片描述
往下滚动,找到相关设置,Windows防火墙,点击它,如下图
图片描述
打开后出现的标题是防火墙和网络保护,在下面有一些文字都是可点击的,

其中一个高级设置,点击它,如下图
图片描述

这会打开一个高级安全WIndows Defender防火墙窗口,

在左侧的选中入站规则,然后,在右侧点击新建规则,弹出一个对话框,就选择端口,如下图,
图片描述
点击下一页,选择TCP,和 特定本地端口,填入IP地址中的端口号8000,如下图
图片描述

实际上应填入你的IP地址中使用的端口号

点击下一页,默认选择允许连接,不用管,如下图
图片描述
点击下一页,是作用域,默认全勾选即可,不懂的话,也不用管,如下图
图片描述
点击下一页,是不是感觉页数有点多,到此了,这是最后一步,

输入名称描述,输入内容要自己能理解就行,是为了方便下次能识别和找到,如下图
图片描述
点击完成,在入站规则列表中,出现了刚才新增的规则,如下图
图片描述
到这里,想必是起作用了,那就重启你的HTTP服务器看看,访问是否正常了。

优点:保持上网安全
缺点:步骤多,操作麻烦,要使用的时候就开启,不使用时就关闭

此方案,步骤多,对非计算机专业的用户来说理解这些操作不容易,只照着去做。

HttpListenerException: 拒绝访问问题

当你选择最优项方案二:

可能遇到还是访问不了,提示无法访问此页面,如下图
图片描述

设置了IP,应该是IP访问权限问题,

在开发中使用HttpListener类搭建HTTP服务器,运行若报错信息如下:

HttpListenerException: 拒绝访问

这也是类似的IP访问权限问题,

还得继续解决,

在电脑桌面打开菜单,搜索框输入命令提示符,以管理员身份运行,

也就是打开CMD终端管理员程序窗口,输入如下命令

netsh http add urlacl url=http://192.168.1.120:1028/ user=Everyone

将此IP地址192.168.1.120:1028替换成你的,添加到白名单

当输出已成功添加 URL 保留项,说明OK了,如下图

再重启你的HTTP服务器试试,可否正常访问了,

不过,上面的命令执行后,之前的本地IP和端口访问就会被拒绝,只需要从白名单中删除

打开CMD终端管理员程序窗口,输入删除命令如下

netsh http delete urlacl url=http://192.168.1.120:1028/

就写到这里,以上内容已整理完毕,建议收藏以防遗忘。

图片描述

http://www.dtcms.com/a/336348.html

相关文章:

  • 钉钉退出后重新登录显示网络异常,解决方法(随手记)
  • 嵌入式LINUX——————TCP并发服务器
  • Python 设计模式详解 —— 掌握软件设计的通用解决方案
  • PWM输入捕获(测量按键按下时间、测量PWM波)
  • 25. 能否创建一个包含可变对象的不可变对象
  • YOLOV5训练自己的数据集并用自己的数据集检测
  • 2025-08-17 李沐深度学习16——目标检测
  • PAT 1068 Find More Coins
  • ACPI TABLE 方式加载device driver--以spi controller为例
  • 认识信号量机制、以及用信号量来实现进程互斥于进程同步
  • 计算机网络 TCP time_wait 状态 详解
  • VirtualBox-4.3.10-93012-Win.exe 安装教程附详细步骤(附安装包下载)
  • 为何她总在关键时“失联”?—— 解密 TCP 连接异常中断
  • TensorRT-LLM.V1.1.0rc1:Dockerfile.multi文件解读
  • LeetCode 刷题【44. 通配符匹配】
  • 多墨智能-AI一键生成工作文档/流程图/思维导图
  • 《WINDOWS 环境下32位汇编语言程序设计》第3章 使用MASM
  • Redis面试精讲 Day 23:Redis与数据库数据一致性保障
  • 什么是回表?
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘scikit-image’问题
  • Hooks useState的使用
  • leetcode热题100——day33
  • 视频内容提取与AI总结:提升学习效率的实用方法
  • 【深度学习新浪潮】近三年图像处理领域无监督学习的研究进展一览
  • 科目二的四个电路
  • 《Vuejs设计与实现》第 14 章(内建组件和模块)
  • 概率dp|math
  • Android中切换语言的方法
  • 基于Netty的高并发WebSocket连接管理与性能优化实践指南
  • ReactNode 类型