基于Apache httpd为windows11搭建代理服务器

文章目录

  • 一.概述
  • 二.检查电脑系统类型
  • 三.下载安装Apache Httpd
  • 四.代理服务配置
  • 五.代理服务安装
  • 六.报错解决方法
  • 七.测试是否运行成功
    • 7.1 本机测试
    • 7.2 局域网代理测试
  • 八.设置特定ip可访问(阻止其他ip访问)
  • 九.参考文档

一.概述

  出于某些原因,我们需要将自己的windows电脑作为网络代理局域网内的其他设备做流量代理,那么windows电脑上的一些魔法功能就可以赋能给局域网内其他设备使用(类似于软路由网关),选择将windows作为代理服务器,需要在windows主机上安装代理服务,通常有一些软件客户端,如CCproxy,或者Apache httpd,本文介绍Apache httpd的方法。

二.检查电脑系统类型

检查电脑版本是为 32位操作系统 还是 64位操作系统
检查方式如下:1.在桌面找到【我的电脑】图标,右键属性。

三.下载安装Apache Httpd

  下载地址:http://www.apachehaus.com/cgi-bin/download.plx(Apache Haus Downloads)
  根据步骤1中电脑的系统位数,选择对应编译好的二进制版本,下载后得到httpd-2.4.25-x64-vc11-r1.zip,解压。
  记住存放路径;例如:C:\AppInstall\Apache24
  注意:如果选择下载的Apache httpd 与操作系统位数不一致,可能会导致无法正常使用。
在这里插入图片描述

四.代理服务配置

进入安装的目录:如 C:\AppInstall\Apache24,目录结构如下,这里需要对conf做一些修改,以适配我们当前的配置,首先进入conf 目录,打开httpd.conf文件:
在这里插入图片描述
修改处1:进入conf 目录,打开httpd.conf文件进行修改根目录ServerRoot为自己放置Apache24的目录(我的是C:\AppInstall\Apache24),这里不修改启动会报错。
在这里插入图片描述

修改处2:Listen端口修改(修改成自己要监听的端口和ip)

Listen 8989

在这里插入图片描述
修改处3:ServerName修改为监听的端口(我设置8989)

在这里插入图片描述

修改处4:把以下四句前面的【#】去掉。HTTP 、FTP 、HTTPS sites

#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

在这里插入图片描述
修改处5:在最后添加Proxy配置

ProxyRequests   On
<Proxy *>Order allow,denyAllow from all
# Deny from 127.0.0.1
# Deny from 10.10.10.0/24
</Proxy>

【注意】2.2版本和2.4+版本在配置上有差别

五.代理服务安装

win+R 输入cmd 使用管理员权限打开dos窗口 运行以下命令安装:

cd C:\AppInstall\Apache24\bin
httpd -k install

进行安装apache,安装之后可以在 win+R 输入 services.msc进入服务中可以看到apache服务已经安装成功:

在这里插入图片描述
以下命令支持对apache的的启动操作:

cd C:\AppInstall\Apache24\bin启动apache 输入:httpd -k restart
卸载apache 输入:httpd -k uninstall

在这里插入图片描述

六.报错解决方法

  如果 Apache启动 报Invalid command ‘order’, perhaps misspelled or defined by a module not included。

解决方法:

  • 配置文件中,httpd.conf中,把mod_authz_host.so模块注释掉;
  • 把LoadModule authz_host_module modules/mod_authz_host.so 注释取消掉

七.测试是否运行成功

7.1 本机测试

  使用浏览器验证代理是否可以访问:浏览器配置代理,以360浏览器为例,选项-》代理服务器-》代理服务器设置-》,手动配置代理,输入的IP 可为127.0.0.1,也可为局域网地址或专有网络外网地址,端口为步骤3中监听的端口,这里为:8989。

7.2 局域网代理测试

  • 设置火狐浏览器中的代理为192.168.2.130:8989,如果能正常访问***,则代理成功。
  • 设置系统设置中的代理为192.168.2.130:8989,在shell中curl www.***.com,返回结果则成功;
  • 在shell中可使用命令设置(仅在当前shell中生效):
export http_proxy=http://192.168.2.130:8989
export https_proxy=https://192.168.2.130:8989

将上面两句命令放在~/.bashrc/etc/profile中,可以分别在当前用户和整个系统中生效。
注意:科学在windows电脑中需开启TUN模式,才能代理所有流量。

八.设置特定ip可访问(阻止其他ip访问)

参考链接:Apache的Order Allow,Deny 详解 - 与时俱进 - 博客园 (cnblogs.com)

httpd.conf中修改最后的设置内容:

ProxyRequests   On
<Proxy *>Order Deny,AllowAllow from 192.168.2.100 192.168.2.200Deny from all
# Deny from 127.0.0.1
# Deny from 10.10.10.0/24
</Proxy>

  注意“Deny,Allow”中间只有一个逗号,也只能有一个逗号,有空格都会出错;单词的大小写不限。上面设定的含义是先设定“先检查禁止设定,没有禁止的全部允许”,而第二句没有Deny,也就是没有禁止访问的设定,直接就是允许所有访问了。这个主要是用来确保或者覆盖上级目录的设置,开放所有内容的访问权。
  apache会按照order决定最后使用哪一条规则,比如下面,虽然第二句deny了所有访问,但由于在order中allow是最后规则,因此还需要看有没有allow规则,于是allow的192.168.2.100和192.168.2.100就被允许了。注意,order决定的“最后”规则非常重要

  根据上面的规则,在局域网内除了192.168.2.100和192.168.2.100两台机器,其他的ip都别禁止访问代理访问了,对于其他的机器,执行curl www.***.com命令会报如下错误:
在这里插入图片描述
而对于允许的192.168.2.100和192.168.2.100两台机器,执行curl www.***.com命令输出如下:
在这里插入图片描述
当然,根据上面的规则,你可以任意设置允许或禁止哪些设备通过,配置起来非常简单!

至此,完结撒花!

九.参考文档

  • WINDOWS代理服务器搭建 - Apache httpd
  • Windows10/11 搭建网络代理服务器
  • Apache的Order Allow,Deny 详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/644033.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

架构篇22:CAP理论-布鲁尔定理(Brewer‘s theorem)

文章目录 CAP 理论CAP 应用小结 CAP 定理&#xff08;CAP theorem&#xff09;又被称作布鲁尔定理&#xff08;Brewer’s theorem&#xff09;&#xff0c;是加州大学伯克利分校的计算机科学家埃里克布鲁尔&#xff08;Eric Brewer&#xff09;在 2000 年的 ACM PODC 上提出的一…

如何在飞书创建企业ChatGPT智能问答助手应用并实现公网远程访问(1)

文章目录 前言环境列表1.飞书设置2.克隆feishu-chatgpt项目3.配置config.yaml文件4.运行feishu-chatgpt项目5.安装cpolar内网穿透6.固定公网地址7.机器人权限配置8.创建版本9.创建测试企业10. 机器人测试 前言 在飞书中创建chatGPT机器人并且对话&#xff0c;在下面操作步骤中…

10个常考的前端手写题,你全都会吗?(下)

前言 &#x1f4eb; 大家好&#xff0c;我是南木元元&#xff0c;热爱技术和分享&#xff0c;欢迎大家交流&#xff0c;一起学习进步&#xff01; &#x1f345; 个人主页&#xff1a;南木元元 今天接着上篇再来分享一下10个常见的JavaScript手写功能。 目录 1.实现继承 ES5继…

11.前端--CSS-背景属性

1.背景颜色 样式名称&#xff1a; background-color 定义元素的背景颜色 使用方式: background-color:颜色值; 其他说明&#xff1a; 元素背景颜色默认值是 transparent&#xff08;透明&#xff09;      background-color:transparent; 代码演示&#xff1a; 背景色…

Lua简介和应用场景介绍

Lua 的介绍 起源&#xff1a;Lua 于 1993 年在巴西里约热内卢的天主教大学&#xff08;PUC-Rio&#xff09;由 Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo 开发。 设计目的&#xff1a;Lua 设计的主要目标是为了嵌入到其他应用程序中&#xff0c;…

Leetcode—39.组合总和【中等】

2023每日刷题&#xff08;七十六&#xff09; Leetcode—39.组合总和 算法思想 实现代码 class Solution { public:vector<vector<int>> combinationSum(vector<int>& candidates, int target) {vector<vector<int>> ans;vector<int>…

Docker 魔法解密:探索 UnionFS 与 OverlayFS

本文主要介绍了 Docker 的另一个核心技术&#xff1a;Union File System。主要包括对 overlayfs 的演示&#xff0c;以及分析 docker 是如何借助 ufs 实现容器 rootfs 的。 1. 概述 Union File System Union File System &#xff0c;简称 UnionFS 是一种为 Linux FreeBSD NetB…

Mybatis 踩坑合集

判等的时候integer的0不识别 解决方法&#xff1a; 改成string的把判空 ’ ’ 取消掉 大佬分析 在实体类中定义了get方法&#xff0c;updatebyid的时候会调用自己的get方法&#xff0c;要注意传参

linux部署nginx

linux部署nginx 参考链接&#xff1a;linux 系统下安装nginx 如何使用nginx访问另外一台windows服务器java服务 参考链接&#xff1a;如何使用nginx访问另外一台windows服务器java服务

2024年美赛数学建模思路 - 案例:退火算法

文章目录 1 退火算法原理1.1 物理背景1.2 背后的数学模型 2 退火算法实现2.1 算法流程2.2算法实现 建模资料 ## 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 退火算法原理 1.1 物理背景 在热力学上&a…

力扣206-反转链表

反转链表 题目链接 解题思路 反转链表&#xff0c;只需要将链表中的元素放入栈中&#xff0c;然后依次出栈&#xff0c;即可实现链表的反转 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(…

MySQL乐观锁与悲观锁

说明 遇见并发情况&#xff0c;需要保证数据的准确性&#xff0c;也就是与正确的预期一致&#xff0c;此时就会用到锁。 锁是在并发下控制程序的执行逻辑&#xff0c;以此来保证数据按照预期变动。 如果不加锁&#xff0c;并发情况下的可能数据不一致的情况&#xff0c;这是个…

Vue+OpenLayers7:html原生网页如何使用OpenLayers7地图

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7 前言 尽管现在大部分网页都是使用Vue或者React开发了,但是还是有不少开发者使用的是网页原生html进行开发,或者是老项目维护的需要,所以为了照顾使用html原生网页的同学们,本章简单讲解一下如何使用原始html网页情况下…

关于网络协议的笔记

简介&#xff1a; 协议&#xff0c; 网络协议的简称&#xff0c;网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连 接、怎么样互相识别等。只有遵守这个约定&#xff0c;计算机之间才能相互通信交流。它的 三要素是&#xff1a;语 法、语义、时序。 为了使数…

外网ssh远程连接服务器

文章目录 外网ssh远程连接服务器一、前言二、配置流程1. 在服务器上安装[cpolar](https://www.cpolar.com/)客户端2. 查看版本号&#xff0c;有正常显示版本号即为安装成功3. token认证4. 简单穿透测试5. 向系统添加服务6. 启动cpolar服务7. 查看服务状态8. 登录后台&#xff0…

常用shell脚本命令总结

可以将shell脚本 当做终端命令的集合&#xff0c;终端可以运行shell就可以 shell 脚本 声明(第一行加) #!/bin/bash 设置变量 FILE_PATH_BASE/home/gitlab-runner/apk_download/ 使用变量 "$FILE_PATH_BASE" 1、mv命令 文件移动 mv ./build/web/ ${FILE_PATH_BASE} …

innodb底层原理和MySQL日志机制

server层 1. 连接器 客户端连接数据库需要输入账号、密码。连接器进行校验账号密码以及权限。 2. 查询缓存 连接器连接以后&#xff0c;比如输入一个select语句&#xff0c;这时候第一步就会先根据sql语句作为key给查询缓存中查看这条sql有没有已经被查询过&#xff0c;如果…

k8s图形化管理工具之rancher

前言 在前面的k8s基础学习中&#xff0c;我们学习了各种资源的搭配运用&#xff0c;以及命令行&#xff0c;声明式文件创建。这些都是为了k8s管理员体会k8s的框架&#xff0c;内容基础。在真正的生产环境中&#xff0c;大部分的公司还是会选用图形化管理工具来管理k8s集群&…

Mybatis 全局配置文件(三)

文章目录 第一章&#xff1a;概述第二章&#xff1a;properties (了解)第三章&#xff1a;settings第四章&#xff1a;typeAliases (别名处理器)第五章&#xff1a;typeHandlers (类型处理器)第六章&#xff1a;plugins(插件)第七章&#xff1a;environments (环境)第八章&…

民安智库-医院职工满意度调查报告如何撰写

撰写医院职工满意度调查报告是整个调查过程的重要步骤&#xff0c;它可以帮助医院管理层理解员工的反馈并制定改进计划。以下是撰写医院职工满意度调查报告的一般步骤和建议&#xff1a; 1.报告概述&#xff1a;开始报告时&#xff0c;提供一个简要的概述&#xff0c;包括报告…