klaus
klaus
发布于 2023-05-05 / 6 阅读
0
0

内网穿透

Frp 内网穿透

frp server

[!Note] 重要!!!!!
千万要注意frps中,配置的 ==vhost_http_port== 的值,该值必须对应nginx中 ==proxy_pass== 中的端口

^7f09c0

server

# 启动命令
./frps -c ./frps.ini

frp client

client

# 启动命令
./frpc -c ./frpc.ini

frp server 管理界面

server管理界面

TCP内网穿透

HTTP内网穿透

[!NOTE]
使用 ./frps | ./frpc 这种命令,在 shell 关闭时,frp 服务也会断掉。
如果使用 nohup ./frps -c ./frps.ini & 命令启动会在后台运行,但是不够优雅
推荐安装为系统服务运行

frps 安装为系统服务

  1. 编写 frps.service
vim /etc/systemd/system/frps.service
[Unit]
# 服务名称,可自定义
Description = frps server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /root/frp/frps -c /root/frp/frps.ini

[Install]
WantedBy = multi-user.target
  1. 此时可以通过 systemctl 系统命令来管理 frp
# 启动
systemctl start frps
# 开机自启
systemctl enable frps
# 重启
systemctl restart frps
# 停止
systemctl stop frps
# 查看状态
systemctl status frps

fprs启动效果

frpc 安装为系统服务

  1. 编写 frpc.service
vim /etc/systemd/system/frpc.service
[Unit]
# 服务名称,可自定义
Description = frpc server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /root/frp/frpc -c /root/frp/frpc.ini

[Install]
WantedBy = multi-user.target
  1. 此时可以通过 systemctl 系统命令来管理 frpc
# 启动
systemctl start frpc
# 开机自启
systemctl enable frpc
# 重启
systemctl restart frpc
# 停止
systemctl stop frpc
# 查看状态
systemctl status frpc

NatApp (内网穿透工具)

什么是内网穿透? 适用于什么场景?

内网穿透是指,通过外网访问局域网的一种方式。在局域网环境中,正常情况下是不能通过外网访问的。局域网只允许局域网内部的机器互通。 而内网穿透是指通过一种代理的方式(例如:NatApp),达到在外网能口访问局域网内部机器的技术。


内网穿透适用场景有很多,包括但不限于:远程控制、远程协助、家庭 NSA 组网、家庭下载机(远控路由器)、本地测试第三方服务回调、域名备案等....

NatApp 设置

使用 NatApp 是因为公司本地有一台双路的测试服务器,所以直接拿来做小程序测试服务。服务器的配置如下:

CPU : E5 _ 2
Memery : 8G _ 2 + 4G \* 2
HardDisk : 1T
OS : Centos 7.5

该配置属于还算不错的机器,拿来做一些实验或是搭建开发/测试环境都可以有富裕。但是在内网,不支持远程控制,所以想着使用内网穿透来达到目的。

目前在 NatApp 上购买了一条Vip3的通道, 该通道只支持TCP 协议,因为主要是用来远程 SSH 上去,所以暂时只开通了TCP, 后续可能会开通http/https。因为是公司服务器,所以不会开通UDP,主要是看需求来确定。购买时使用了推荐码,有 9 折优惠,购买时间段越长,优惠越大。


安装 NatApp 很简单,所以只是简单记录。

  • 购买通道(也可以使用免费,但是免费版本不定期会更换域名)

  • 配置通道,因为在购买时就确定了什么协议,同时也确定了通道端口(端口购买后不能更改)

  • 下载客户端 NatApp
  • 在需要内网穿透的机器上,运行客户端。(Centos 上 需要给 natapp 执行权限 chmod u+x natapp
  • 执行 ./natapp -authtoken=XXXXX 其中 authtoken 在通道配置页面可以查看,也可以更换。
  • 出现如下画面,说明安装成功。

[!NOTE]
在运行 NatApp 脚本时,因为没有仔细查看官网文档,直接是使用./natapp -authtoken=****** 方式直接启动的,然后关闭了命令窗口。然后远程连接返现连接不了,在看控制台,也是显示 离线了。莫名悲剧。。。

如果需要保持在后台启动,需要使用nohup ./natapp -authtoken=xxxx -log=stdout &


注意一定要加上 -log=stdout
nohup 默认会在当前目录 创建 nohup.out 文件,会记录 natapp 运行日志,为避免日志过大,可以将日志等级降低 如
nohup ./natapp -authtoken=xxx -log=stdout -loglevel=ERROR &
开机自动启动脚本 Centos 版本
其它版本自启动脚本 github.com/natapp/natapp_autostart


NatApp 官网上有很详细的配置教程,具体配置可以参考以下链接:
linux 后台运行 natapp(ngrok)教程
TCP 型隧道(SSH,数据库,OA,NAS 等基于 TCP 的应用)使用说明以及使用技巧
绑定自主域名以及域名备案说明
更换阿里公共 DNS
支持 https 泛域名以及本地(443 端口)证书,支持 http/2 协议
natapp(ngrok) Linux 开机自启动
用 Natapp(ngrok)进行微信本地开发调试
NATAPP1 分钟快速新手图文教程

NatApp 安全问题

NatApp 的安全问题择自NatApp 官网

现在服务器被黑的情况,多半是服务器上一些软件/漏洞/端口导致的.你的应用如果放在公网服务器,由于缺少系统安全维护知识,会变得很危险.而用了 natapp 内网穿透软件之后,将服务器放在本地,暴露给公网的也仅仅是应用层面的一个端口,其他系统上的漏洞/端口都被隐藏起来.从这个层面来说,提高了很多安全性.

当然,你的应用本身带来的安全性,比如代码本身有漏洞,如果是映射数据库应用,数据库弱密码等,这需要引起重视,排查映射的应用本身安全性即可.

Natapp 本身的隧道传输采用 ssl256 位加密,这种加密安全性现阶段完全无法破解,natapp 隧道的安全性无需考虑


评论