Cqu.pt 内网外入 搭建指南

October 21, 2019 · 综合 · 运维 · 30次阅读

重庆邮电大学内网外入诞生于2015年9月,该系统利用nginx服务器反向代理的原理,方便了重邮同学通过外网直接访问内网。同学们可以随时随地进入内网查询自己的个人课表、考试安排、期末成绩,进行选课等,极大方便同学们的日常使用。此外还设立了网站保护名单机制用以保证内网隐私和安全。该系统PV年均访问量接近千万级,PV日均访问约2万人次,PV单日峰值超20万人次。

谨慎操作

总的方案

(主站) cqu.pt --链接--> *.cqu.pt [校内服务器]

内网外入服务器搭建

服务器所用操作系统:Ubuntu 18.04.3 LTS
服务器提供商:红岩云

0、环境

加把劲哦

服务器需既能上内网又能上外网,公网ip非必须。

如何让自己的小鸡能上外网 这个问题可以自己开发思路

举例 拦截创翼真实账号进行拨号

如何打洞呢?

一个方案:OpenVPN

OpenVpn脚本

依据脚本的提示 输入参数 (建议UDP

将生成的ovpn文件拉到内网小鸡

openvpn --config xxx.ovpn
# 后台运行
# nohup openvpn --config xxx.ovpn &
tail nohup.log

如果无报错 可以Ping一下设置的内网ip

1、安装并编译nginx

sudo apt install nginx

因需安装第三方模块,固下面将使用编译的方式重新安装nginx

# 切换到root用户
sudo su
# 创建一个用于存放下载源程序的文件夹source
mkdir /source
cd /source

下载nginx

# 下载最新版nginx,可在官网 http://nginx.org 寻找下载地址
wget http://nginx.org/download/nginx-1.17.5.tar.gz
# 解压
tar -xzvf nginx-1.17.5.tar.gz

下载 nginx:subs_filter 模块

git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module

查看当前 apt 所安装的 nginx 是如何配置的

nginx -V

找到 configure arguments 的如下内容,并复制

# 此处仅做参考

--with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads
# 根据上述配置参数,安装部分依赖,如:
apt install libpcre3 libpcre3-dev libxml2 libxml2-dev libxslt1-dev libgd-dev geoip-bin libgeoip-dev libssl-dev

编译 nginx

cd nginx-1.17.5
# 编译,在上述configure arguments后加上subs_filter模块
./configure [粘贴上述查询到的configure arguments] --add-module=/source/ngx_http_substitutions_filter_module
# 相对configure的路径
# 若报错,尝试进行上述部分依赖的安装

安装 nginx

make && make install

替换编译后的 nginx

mv /usr/sbin/nginx /usr/sbin/nginx.old
cp objs/nginx /usr/sbin/nginx
# 启动
nginx

2、nginx配置

进入nginx路径

cd /etc/nginx

编辑配置文件

vim nginx.conf

查看 http 中是否包含 include conf.d/*.conf。若无或不正确,则新增或者修改为上述结果,表示包含 conf.d 文件夹其内的 .conf 后缀的配置文件

进入 /etc/nginx/conf.d,将内网外入的配置文件拷贝进入

  • 若服务器支持80端口访问,则拷贝 plan_a 中的cqupt.congm.in.confcqupt.congm.in.rule
  • 若服务器支持88端口访问,则拷贝 plan_b 中的host.congm.in.confcqupt.congm.in.rule

3、启动/重启nginx

# 已启动,让配置生效
nginx -s reload
# 未启动,启动
nginx
cqu.pt.conf

cqu.pt.rule

标签:none

最后编辑于:2019/11/10 13:42

添加新评论