赞
踩
摘要:在内网部署的 gitlab 同事在出差的时候,导致无法使用,继而重新回到以前使用的 马云gitee 上面。这里记录一下通过 nps 将gitlab 映射到公网,使其可以直接访问。
相关文章
[root@izm5e1om21c063c81zk7k8z ~]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.4.1708 (Core)
Release: 7.4.1708
Codename: Core
[root@izm5e1om21c063c81zk7k8z ~]#
内网分别使用了部署gitlab的 Centos 7.9 及一台 win10测试机
此处以安装包直接安装为例
1、关闭防火墙
这里我处理的比较粗暴,直接关闭了防护墙,因为 nps 配置的端口太多了,比较麻烦。
查看防火墙状态,下方表示防火期处于关闭状态
[root@izm5e1om21c063c81zk7k8z conf]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@izm5e1om21c063c81zk7k8z conf]#
确保防火墙开放了所有端口
[root@izm5e1om21c063c81zk7k8z conf]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@izm5e1om21c063c81zk7k8z conf]#
[root@izm5e1om21c063c81zk7k8z conf]# systemctl stop firewalld
[root@izm5e1om21c063c81zk7k8z conf]# systemctl disable firewalld
[root@izm5e1om21c063c81zk7k8z conf]#
[root@izm5e1om21c063c81zk7k8z usr]# cd nps
[root@izm5e1om21c063c81zk7k8z nps]# ls
linux_amd64_server.tar.gz
[root@izm5e1om21c063c81zk7k8z nps]# tar -xzvf linux_amd64_server.tar.gz
[root@izm5e1om21c063c81zk7k8z usr]# cd ./nps
[root@izm5e1om21c063c81zk7k8z nps]# ls
conf linux_amd64_server.tar.gz nps web
[root@izm5e1om21c063c81zk7k8z nps]# cd conf
[root@izm5e1om21c063c81zk7k8z conf]# ls
clients.json hosts.json nps.conf server.key server.pem tasks.json
[root@izm5e1om21c063c81zk7k8z conf]# vim nps.conf
nps 的配置在 nps.conf 中,通过 vim开始编辑。
#HTTP(S) proxy port, no startup if empty #域名代理http代理监听端口 http_proxy_port=6020 #域名代理https代理监听端口 https_proxy_port=6030 ##bridge #服务端客户端通信端口 默认为8024 bridge_port=6050 #web #服务器IP或者域名 web_host= #web界面管理用户名 web_username= #web界面管理密码 web_password= #web界面管理密码 web_port = 6060
注意:若服务器已占用 80/443 端口,请将 httpsProxyPort&httpProxyPort 更换为其它端口,否则端口冲突将导致面板无法开启。
按下"i"或者“insert”开始编辑,编辑完成后按"Esc"退出编辑模式,在输入":wq"保存并退出。
注意:需要在阿里云的安全规则 出站规则规则中进行放行
切换到包含nps文件的目录下进行启动nps
[root@izm5e1om21c063c81zk7k8z nps]# ls
conf linux_amd64_server.tar.gz nps web
./nps start /* 后台启动服务 */
./nps stop /* 结束后台进程 */
./nps reload /* 重新加载配置 */
如果以上不能正常启用,可以采用以下方式,先安装一下
[root@izm5e1om21c063c81zk7k8z usr]# cd nps
[root@izm5e1om21c063c81zk7k8z nps]# ls
conf linux_amd64_server.tar.gz nps web
[root@izm5e1om21c063c81zk7k8z nps]# sudo ./nps install
...
2022/05/18 11:34:56 install ok!
2022/05/18 11:34:56 Static files and configuration files in the current directory will be useless
2022/05/18 11:34:56 The new configuration file is located in /etc/nps you can edit them
2022/05/18 11:34:56 You can start with:
nps start|stop|restart|uninstall|update or nps-update update
anywhere!
[root@izm5e1om21c063c81zk7k8z nps]# sudo nps start
注意:nps install 之后的 nps 不在原位置,请使用 whereis nps 查找具体目录覆盖 nps 二进制文件
[root@izm5e1om21c063c81zk7k8z conf]# whereis nps nps: /usr/bin/nps /etc/nps [root@izm5e1om21c063c81zk7k8z conf]# cd ~ [root@izm5e1om21c063c81zk7k8z ~]# cd ../ [root@izm5e1om21c063c81zk7k8z /]# ls bin dev etc lib lost+found media NDES proc run srv tmp var zghosTest boot dump.rdb home lib64 lslnb mnt opt root sbin sys usr yibin [root@izm5e1om21c063c81zk7k8z /]# cd ./etc/nps [root@izm5e1om21c063c81zk7k8z nps]# ls conf web [root@izm5e1om21c063c81zk7k8z nps]# vim ./conf/nps.conf [root@izm5e1om21c063c81zk7k8z nps]# nps stop [root@izm5e1om21c063c81zk7k8z nps]# nps start [root@izm5e1om21c063c81zk7k8z nps]# ps -ef|grep nps root 31571 1 1 09:02 ? 00:00:00 /usr/bin/nps service root 31583 27387 0 09:02 pts/0 00:00:00 grep --color=auto nps [root@izm5e1om21c063c81zk7k8z nps]#
其之前的配置文件也完全的加载到 etc/nps这个目录中
[root@localhost usr]# cd npc
[root@localhost npc]# ls
linux_amd64_client.tar.gz
[root@localhost npc]# tar xzvf linux_amd64_client.tar.gz
[root@localhost npc]# ./npc -server=xxx.xxx.xxx.xxx:xxxx -vkey=xxxxxxxxxxxxxxxx -type=tcp
2022/05/18 12:20:10.477 [I] [npc.go:231] the version of client is 0.26.10, the core version of client is 0.26.0
2022/05/18 12:20:10.601 [I] [client.go:72] Successful connection with server 139.129.117.1:6050
2022/05/18 12:30:17.990 [D] [client.go:216] new tcp connection with the goal of 127.0.0.1:80, remote address:171.88.65.209:2062
2022/05/18 12:30:17.990 [D] [client.go:216] new tcp connection with the goal of 127.0.0.1:80, remote address:171.88.65.209:2063
2022/05/18 12:30:18.480 [D] [client.go:216] new tcp connection with the goal of 127.0.0.1:80, remote address:171.88.65.209:2064
如果没有报错,可以访问网页管理面板查看客户端是否变为在线状态。如进入在线状态,则可以添加内网穿透规则
在调试微信公共号时候,需要使用到域名和因为有支付回调原因,域名不能跟端口。上面的 NPS 搭建的服务器已被网站占用了80端口,将 http 的端口设置为其他端口后。在客户端进行域名解析后,不能正常使用,如果是在域名后面追加 nps 配置文件中 http端口就可以正常访问了。
注:通过NPS做 http 域名解析,需要让 NPS 占用 http 的 80 端口,看见有文章说,此问题可以处理。文章是 nps 和 宝塔共存,在宝塔设置反向代理即可。根据实践 nps 带来的好处是什么
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。