七兮技术分享

CentOS下搭建Ngrok内网穿透服务

25 03月
作者:七兮|分类:运维知识|标签:根目录

centos下搭建Ngrok内网穿透服务

作为一个程序员,没有公网IP怎么行呢?这里就来个内网穿透工具吧


1.准备

首先你需要一个服务器,我的是腾讯云主机。

我这里系统选择的是CentOS

然后设置域名指向你的服务器IP。

2.开始安装


# 安装依赖
yum -y install openssl-devel wget gcc gcc-c++
# 安装git
yum install git -y
# 安装go
yum install -y mercurial bzr subversion golang
# 查看go版本
go version
# 拉取ngrok源码
git clone https://github.com/inconshreveable/ngrok.git
# 生成证书
cd ngrok
export NGROK_DOMAIN="qxhut.cn"  # 这里就是你解析IP的域名
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
# 将新生成的证书替换掉旧的
\cp -rf rootCA.pem assets/client/tls/ngrokroot.crt
\cp -rf device.crt assets/server/tls/snakeoil.crt
\cp -rf device.key assets/server/tls/snakeoil.key
# 编译生成ngrokd服务端,运行在当前系统CentOS
GOOS=Linux GOARCH=amd64 make release-server

这里的话服务端已经完成了,编译好的服务端的文件为bin/ngrokd

我们先启动测试一下

# 服务端启动测试,注意修改域名
./bin/ngrokd -domain="qxhut.cn" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443"
# 创建快捷启动脚本
vi start-ngrokd.sh
# 内容如下:
#!/bin/sh
# 注意你的路径可能和我不同!
/root/ngrok/bin/ngrokd -domain="qxhut.cn" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443"
# 设置文件权限
chmod 755 start-ngrokd.sh



启动没问题后,我们将其制作成服务

服务端配置

前面我们已经把 ngrokd 文件拷贝到 vps 的根目录,在这里我们把转移到这里:sudo mkdir /opt/ngrkd & sudo mv ngrokd /opt/ngrokd/

然后使用 systemd 设置自启动服务,把如下内容保存在 /lib/systemd/system/ngrokd.service, 域名要改成你自己的。

[Unit]
Description=ngrok server
After=network.target

[Service]
Type=simple
ExecStart=/root/ngrok/bin/ngrokd -domain qxhut.cn -httpAddr ":80" -httpsAddr ":443" -tunnelAddr ":4443" -log "/var/log/ngrokd.log"
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动服务

sudo systemctl enable ngrokd
sudo systemctl start ngrokd
sudo systemctl status ngrokd

客户端配置

客户端配置

登录到内网服务器, 同样把编译好的 ngrok 拷贝过来的 ngrok 客户端,然后同样客户端服务添加到 systemd 自启动服务中,保存下面内容到文件 /lib/systemd/system/ngrok.service


[Unit]
Description=ngrok client
After=network.target

[Service]
Type=simple
ExecStart=/opt/ngrok/ngrok -config "/opt/ngrok/ngrok.cfg" -log "/var/log/ngrok.log" start  ssh
Restart=on-failure

[Install]
WantedBy=multi-user.target

ExecStart 加载了配置文件 /opt/ngrok/ngrok.cfg,其文件内容如下:

server_addr: "qxhut.cn:4443"
trust_host_root_certs: false
tunnels:
    mstsc:
        remote_port: 3389
        proto:
         tcp: "127.0.0.1:3389"

然后像启动 ngrok 服务端服务一样启动客户端服务

CentOS下搭建Ngrok内网穿透服务  第1张


接下来就可以快乐的去 ssh 或者 mstsc了

浏览152 评论0
返回
目录
返回
首页

来源:七兮网络 转载请注明出处,本文地址:http://qxhut.cn/?id=203。

免责声明:

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

Docker删除镜像和容器 安装VMware Tools显示灰色正确解决办法

发表评论

请先 登录 再评论,若不是会员请先 注册