frp内网穿透+squid缓存代理 实现远程访问公司内网服务器

原创思想,原创作品,仅供学习使用,不良后果与本人无关!!!!

想法来源:

我前面写过关于frp内网穿透实现在局域网搭建私服教程,那都只能访问自己搭建的web服务器,我想把自己私网服务器改作代理服务器,让我在外网不仅能访问自己的web站点,还能用自己web站点做跳板代理我们去访问私网服务器,你说牛不牛逼。

实际环境分析:

有很多大学生应该深有体会,比如我们学校的选课系统,就只能在校园网内选课,以前可以在外网访问到,据说是遭受黑客攻击后才关闭公网访问的,哈哈,但是,你学会了我今天这招,除非学校不能上网,不然照样可以黑掉xx,

实验环境:

VMware 12.0

centos7.4 虚拟机两台

vps服务器一台(cnetos7 本人用阿里云学生机)

win10笔记本

结构图:

frp内网穿透+squid缓存代理  实现远程访问公司内网服务器插图

第一大步:模拟搭建公司内部nginx服务器,192.168.109.139

1、在centos7上安装nginx,略,我自己是编译安装的,这个自己搞定,后期我再写安装教程,节省篇幅

2、修改nginx主配置文件

vim /usr/local/nginx/conf/nginx.conf #根据自己情况而定

内容如下:

user nginx; #登录Nginx的用户 worker_processes 4; #主进程数,一半设为cpu核心数 worker_cpu_affinity 0001 0010 0100 1000; #错误日志位置 error_log /usr/local/nginx/logs/error.log info; pid /usr/local/nginx/logs/nginx.pid; worker_rlimit_nofile 65535; events { use epoll; worker_connections 65535; } http { include /usr/local/nginx/conf/mime.types; #加载支持的文件类型 default_type application/octet-stream; #没找到支持文件类型,默认以二进制流提示下载 #日志格式定义 log_format main '( $http_x_real_ip )- $remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" " $http_x_forwarded_for "'; sendfile on; tcp_nopush off; tcp_nodelay on; keepalive_timeout 10; #虚拟主机部分 include /usr/local/nginx/virtual/*.conf; } 

3、happy.com 虚拟主机配置如下:

vim /usr/local/nginx/virtual/happy.com.conf

server { listen 80; server_name www.happy.com; charset utf-8; access_log logs/host.access.log main; location / { root /data/web/happy.com; #站点家目录位置 index index.html ; } } 

4、 在站点目录下创建index.html

echo "192.168.109.139 happy.com" >/data/web/happy.com/index.html

frp内网穿透+squid缓存代理  实现远程访问公司内网服务器插图1

5、 命令

启动nginx:/usr/local/nginx/sbin/nginx
快速停止nginx:/usr/local/nginx/sbin/nginx -s stop;
优雅停止nginx(会将正在处理中的请求处理完毕):/usr/local/nginx/sbin/nginx -s quit;
重新加载配置:/usr/local/nginx/sbin/nginx -s reload;

6、 检查nginx是否工作正常

frp内网穿透+squid缓存代理  实现远程访问公司内网服务器插图2

frp内网穿透+squid缓存代理  实现远程访问公司内网服务器插图3

frp内网穿透+squid缓存代理  实现远程访问公司内网服务器插图4

也可以使用 curl -I www.happy.com

frp内网穿透+squid缓存代理  实现远程访问公司内网服务器插图5

第二大步:私网squid代理服务器搭建、dns服务器搭建 192.168.109.66

1、搭建squid代理服务器

yum install squid

frp内网穿透+squid缓存代理  实现远程访问公司内网服务器插图6

2、重点:设置dns服务器地址

意思是当用户通过squid代理上网时使用的dns解析,方便解析公司内网的www.happy.com

先修改squid主配置文件增加一个参数 /etc/squid/squid.conf

frp内网穿透+squid缓存代理  实现远程访问公司内网服务器插图7

dns_nameservers 127.0.0.1

(1)安装软件包

yum install bind
yum install bind-utils
yum install bind-libs

(2)修改主配置文件

vim /etc/named.conf

 options { listen-on port 53 { 127.0.0.1; }; #保持默认就好 listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { any; }; #这里改成any recursion yes; dnssec-enable yes; dnssec-validation yes; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; #重点在区域解析,解析的域名地址 zone "happy.com." IN { type master; #注意改成master file "/var/named/happy.com.zone"; #使用哪个区域文件解析 }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; 

(3) 创建区域文件 /var/named/happy.com.zone

[root@server-140 ~]# cat /var/named/happy.com.zone $TTL 1D @ IN SOA www.happy.com. www.happy.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ NS www.happy.com. www A 192.168.109.139 

(4)启动dns服务

systemctl start named

第三大步:阿里云主机配置frp服务端

1、 首先到 frp 的 releases 页面下载最新版的对应 VPS 的处理器架构的压缩包https://github.com/fatedier/frp/releases

2、可以在主机上wget对应frp压缩包,也可以下载到本地用ftp工具(winscp)上传到云服务器

3、 tar -zxvf 解压对应压缩包

4、进入解压后的目录 frp_0.22.0_linux_amd64

5、编辑配置文件 vim frps.ini

[common] #frp服务端与客户端连接端口,frps和frpc必须一致 bind_port = 7000 #下面参数设置与否都没关系,上面设置好就行 #服务端外部提供的web端口 #vhost_http_port = 8080 # 仪表盘端口,只有设置了才能使用仪表盘(即后台) dashboard_port = 7500 

保存退出,

6、启动服务端

./frps -c frps.ini 后台启动为./frps -c frps.ini &

表示启动完成

frp内网穿透+squid缓存代理  实现远程访问公司内网服务器插图8

第四大步:squid服务器配置frp客户端

1、同样下载frp压缩包到本地服务器

2、 解压frp压缩包

3、编辑vim frpc.ini 配置文件

[common] server_addr = 阿里云主机公网ip server_port = 7000 #与frp服务端通信端口 [www] type = tcp local_ip = 127.0.0.1 local_port = 3128 #阿里云6000端口数据转发到本地3128端口 remote_port = 6000 #让阿里云主机开启6000端口转发 

启动服务

./frpc -c ./frpc.ini

frp内网穿透+squid缓存代理  实现远程访问公司内网服务器插图9

第五大步:火狐设置代理,测试

frp内网穿透+squid缓存代理  实现远程访问公司内网服务器插图10

frp内网穿透+squid缓存代理  实现远程访问公司内网服务器插图11

手机端测试

必须在wifi的高级设置那里设置

frp内网穿透+squid缓存代理  实现远程访问公司内网服务器插图12

frp内网穿透+squid缓存代理  实现远程访问公司内网服务器插图13

总结:

如果公司web服务器没有域名就不用搭建dns服务器,配置文件也不用加dns_nameservers 127.0.0.1,我这里使用虚拟环境搭建出来的,如果你想真的入侵内网,买个树莓派,将树莓派搭建成squid服务器,连上内网,一切就完成了,squid功能很多,不仅支持http还支持ftp等等,像Apache和nginx代理功能是不能满足要求的,她们的反向代理更不用说,只适合自己搭建集群使用。我这个和vpn隧道很相似,但是有区别 ,这就的自己体会了,有疑问欢迎联系我

原文链接:https://blog.csdn.net/qq_38228830/article/details/88356714

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享