内网穿透调试和部署是一种在开发和运维中常见的技术,特别是在你需要从外部访问位于本地或私有网络中的服务时。内网穿透能够突破 NAT(网络地址转换)限制,使得外部设备能够访问到位于内网中的服务
内网穿透的背景,通常情况下,企业或个人的服务器在进行本地部署时,会遇到以下几个问题:
1. NAT问题:本地服务器往往在私有 IP 地址(如 192.168.x.x)上运行,无法被外部网络直接访问。
2. 端口映射:许多路由器不允许直接将外部端口映射到内部服务器,需要通过公网 IP 和端口进行访问。
3. 安全性和防火墙:防火墙和网络安全策略会限制外部访问,进一步增加了与外部系统通信的难度。
4. 内网穿透技术可以帮助开发人员绕过这些限制,直接让外部设备能够访问到位于内网中的服务,从而在调试、部署或远程操作时非常有用
内网穿透的常见工具
利用 frp(Fast Reverse Proxy)或者 ngrok 在服务器上搭建穿透服务,将内网服务暴露到外部
现在使用frp搭建内网穿透,下载地址
这是window的frp客户端和服务端的应该,需要以管理员启动
服务端配置文件frps.ini
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
vhost_http_port = 7200
vhost_https_port = 4433
subdomain_host = xqf.site
token = 12345678
# 日志文件配置
log_file = ./frps.log
log_level = info
log_max_days = 3
服务端启动 frps -c frps.ini
客户端配置文件frpc.ini,注意如果使用http一定要添加使用子域名subdomain
[common]
server_addr = "11.120.50.130"
server_port = 7000
token = 12345678
[vm]
type = http
local_ip = 192.168.18.168
local_port = 8888
subdomain = vm
#[tm]
#type = http
#local_ip = 127.0.0.1
#local_port = 8082
#local_port = 7080
#subdomain = tm
[xu_tcp_exampl]
type = tcp
local_ip = 192.168.18.168
local_port = 10001
remote_port = 10001
注意,对于linux系统需要设置为开机自启
start.sh文件内容如下:nohup /home/norco/frpe/frpc -c /home/norco/frpe/frpc.ini >/home/norco/frpc/nohup.out 2>&1 &sudo vim /etc/systemd/system/frpc.service
[Unit]
Description=frpc startup script
After=network-online.target
[Service]
Type=forking
WorkingDirectory=/home/norco/frpc
Execstart=/bin/sh /home/norco/frpc/start.sh run
Restart=on-failure
User-norco
Group=norco
[Instal1]
WantedBy-multi-user.target
重新加载 systemd 配置2
sudo systemctl daemon-reload
3、启用并启动服务
sudo systemctl enable frpc.service
sudo systemctl start frpc.service
sudo systemctl stop frpc.service