前言 最近在部署测试环境 部署服务器上没有公网地址和端口 无法使用navicat等工具对数据库操作 因此需要内网穿透或tcp端口转发来实现
一、 使用frp映射mysql端口
公网服务器作为服务器端frps
内网服务器作为客户端frpc
服务端和客户端均下载相应的包
没开端口的自行开启相应端口
开启7000端口如下
firewall-cmd --zone<span class="token operator">=</span>public --add-port<span class="token operator">=</span><span class="token number">7000</span>/tcp --permanentfirewall-cmd --zone<span class="token operator">=</span>public --add-port<span class="token operator">=</span><span class="token number">7000</span>/tcp --permanentfirewall-cmd --zone=public --add-port=7000/tcp --permanent
1.配置frp服务端
- 进入公网服务器下载frp服务端
<span class="token function">wget</span> https://github.com/fatedier/frp/releases/download/v0.47.0/frp_0.47.0_linux_amd64.tar.gz<span class="token function">wget</span> https://github.com/fatedier/frp/releases/download/v0.47.0/frp_0.47.0_linux_amd64.tar.gzwget https://github.com/fatedier/frp/releases/download/v0.47.0/frp_0.47.0_linux_amd64.tar.gz
- 解压缩
<span class="token function">tar</span> -zxvf frp.tar.gz<span class="token function">tar</span> -zxvf frp.tar.gztar -zxvf frp.tar.gz
- 进入解压后目录
<span class="token builtin class-name">cd</span> frp_0.47.0_linux_amd64/<span class="token builtin class-name">cd</span> frp_0.47.0_linux_amd64/cd frp_0.47.0_linux_amd64/
- 拷贝frps到/usr/bin目录下
<span class="token function">cp</span> frps /usr/bin<span class="token function">cp</span> frps /usr/bincp frps /usr/bin
- 拷贝frps.in文件到/etc目录下
<span class="token function">cp</span> frps.ini /etc<span class="token function">cp</span> frps.ini /etccp frps.ini /etc
- 编辑/etc的frps.ini文件
<span class="token function">vim</span> /etc/frps.ini<span class="token function">vim</span> /etc/frps.inivim /etc/frps.ini
- 写入以下内容并保存
绑定的7000 端口后面会用
token客户端需要填写
bind_port <span class="token operator">=</span> <span class="token number">7000</span> <span class="token assign-left variable">token</span><span class="token operator">=</span>youfei123123bind_port <span class="token operator">=</span> <span class="token number">7000</span> <span class="token assign-left variable">token</span><span class="token operator">=</span>youfei123123bind_port = 7000 token=youfei123123
- 编辑frp服务端service
s
<span class="token function">vim</span> /etc/systemd/system/frps.service<span class="token function">vim</span> /etc/systemd/system/frps.servicevim /etc/systemd/system/frps.service
ExecStart 从服务器读取服务端配置
<span class="token assign-left variable">Description</span><span class="token operator">=</span>frps <span class="token punctuation">[</span>Service<span class="token punctuation">]</span> <span class="token assign-left variable">Type</span><span class="token operator">=</span>simple <span class="token assign-left variable">Restart</span><span class="token operator">=</span>always <span class="token assign-left variable">RestartSec</span><span class="token operator">=</span>5s <span class="token assign-left variable">ExecStart</span><span class="token operator">=</span>/usr/bin/frps -c /etc/frps.ini <span class="token punctuation">[</span>Install<span class="token punctuation">]</span> <span class="token assign-left variable">WantedBy</span><span class="token operator">=</span>multi-user.target<span class="token assign-left variable">Description</span><span class="token operator">=</span>frps <span class="token punctuation">[</span>Service<span class="token punctuation">]</span> <span class="token assign-left variable">Type</span><span class="token operator">=</span>simple <span class="token assign-left variable">Restart</span><span class="token operator">=</span>always <span class="token assign-left variable">RestartSec</span><span class="token operator">=</span>5s <span class="token assign-left variable">ExecStart</span><span class="token operator">=</span>/usr/bin/frps -c /etc/frps.ini <span class="token punctuation">[</span>Install<span class="token punctuation">]</span> <span class="token assign-left variable">WantedBy</span><span class="token operator">=</span>multi-user.targetDescription=frps [Service] Type=simple Restart=always RestartSec=5s ExecStart=/usr/bin/frps -c /etc/frps.ini [Install] WantedBy=multi-user.target
- 开启防火墙7000端口
firewall-cmd --zone<span class="token operator">=</span>public --add-port<span class="token operator">=</span><span class="token number">7000</span>/tcp --permanentfirewall-cmd --zone<span class="token operator">=</span>public --add-port<span class="token operator">=</span><span class="token number">7000</span>/tcp --permanentfirewall-cmd --zone=public --add-port=7000/tcp --permanent
- 重载已添加的端口
firewall-cmd --reloadfirewall-cmd --reloadfirewall-cmd --reload
- 启动服务端服务
systemctl start frpssystemctl start frpssystemctl start frps
2、配置frp客户端
- 进入内网服务器下载frp服务端
<span class="token function">wget</span> https://github.com/fatedier/frp/releases/download/v0.47.0/frp_0.47.0_linux_amd64.tar.gz<span class="token function">wget</span> https://github.com/fatedier/frp/releases/download/v0.47.0/frp_0.47.0_linux_amd64.tar.gzwget https://github.com/fatedier/frp/releases/download/v0.47.0/frp_0.47.0_linux_amd64.tar.gz
- 解压缩
<span class="token function">tar</span> -zxvf frp.tar.gz<span class="token function">tar</span> -zxvf frp.tar.gztar -zxvf frp.tar.gz
- 进入解压后目录
<span class="token builtin class-name">cd</span> frp_0.47.0_linux_amd64/<span class="token builtin class-name">cd</span> frp_0.47.0_linux_amd64/cd frp_0.47.0_linux_amd64/
- 拷贝frpc到/usr/bin目录下
<span class="token function">cp</span> frpc /usr/bin<span class="token function">cp</span> frpc /usr/bincp frpc /usr/bin
- 拷贝frpc.ini文件到/etc目录下
<span class="token function">cp</span> frpc.ini /etc<span class="token function">cp</span> frpc.ini /etccp frpc.ini /etc
- 编辑/etc的frps.ini文件
<span class="token function">vim</span> /etc/frpc.ini<span class="token function">vim</span> /etc/frpc.inivim /etc/frpc.ini
写入以下内容并保存
# server_addr 服务器内网地址 # server_port 服务器内网端口 # token 服务端指定token # local_port 本机mysql端口号 # remote_port 远程端口号 下面是映射了两个端口# server_addr 服务器内网地址 # server_port 服务器内网端口 # token 服务端指定token # local_port 本机mysql端口号 # remote_port 远程端口号 下面是映射了两个端口# server_addr 服务器内网地址 # server_port 服务器内网端口 # token 服务端指定token # local_port 本机mysql端口号 # remote_port 远程端口号 下面是映射了两个端口
server_addr <span class="token operator">=</span> xxx.35.2.xx server_port <span class="token operator">=</span> <span class="token number">7000</span> token <span class="token operator">=</span> youfei123123 <span class="token punctuation">[</span>ssh<span class="token punctuation">]</span> <span class="token builtin class-name">type</span> <span class="token operator">=</span> tcp local_ip <span class="token operator">=</span> <span class="token number">127.0</span>.0.1 local_port <span class="token operator">=</span> <span class="token number">2200</span> remote_port <span class="token operator">=</span> <span class="token number">8045</span>server_addr <span class="token operator">=</span> xxx.35.2.xx server_port <span class="token operator">=</span> <span class="token number">7000</span> token <span class="token operator">=</span> youfei123123 <span class="token punctuation">[</span>ssh<span class="token punctuation">]</span> <span class="token builtin class-name">type</span> <span class="token operator">=</span> tcp local_ip <span class="token operator">=</span> <span class="token number">127.0</span>.0.1 local_port <span class="token operator">=</span> <span class="token number">2200</span> remote_port <span class="token operator">=</span> <span class="token number">8045</span>server_addr = xxx.35.2.xx server_port = 7000 token = youfei123123 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 2200 remote_port = 8045
多个mysql如下
server_addr <span class="token operator">=</span> xx.35.2.xx server_port <span class="token operator">=</span> <span class="token number">7000</span> token <span class="token operator">=</span> youfei123123 <span class="token punctuation">[</span>ssh<span class="token punctuation">]</span> <span class="token builtin class-name">type</span> <span class="token operator">=</span> tcp local_ip <span class="token operator">=</span> <span class="token number">127.0</span>.0.1 local_port <span class="token operator">=</span> <span class="token number">2200</span> remote_port <span class="token operator">=</span> <span class="token number">8045</span> <span class="token punctuation">[</span>ssh-2<span class="token punctuation">]</span> <span class="token builtin class-name">type</span> <span class="token operator">=</span> tcp local_ip <span class="token operator">=</span> <span class="token number">127.0</span>.0.1 local_port <span class="token operator">=</span> <span class="token number">2300</span> remote_port <span class="token operator">=</span> <span class="token number">8044</span>server_addr <span class="token operator">=</span> xx.35.2.xx server_port <span class="token operator">=</span> <span class="token number">7000</span> token <span class="token operator">=</span> youfei123123 <span class="token punctuation">[</span>ssh<span class="token punctuation">]</span> <span class="token builtin class-name">type</span> <span class="token operator">=</span> tcp local_ip <span class="token operator">=</span> <span class="token number">127.0</span>.0.1 local_port <span class="token operator">=</span> <span class="token number">2200</span> remote_port <span class="token operator">=</span> <span class="token number">8045</span> <span class="token punctuation">[</span>ssh-2<span class="token punctuation">]</span> <span class="token builtin class-name">type</span> <span class="token operator">=</span> tcp local_ip <span class="token operator">=</span> <span class="token number">127.0</span>.0.1 local_port <span class="token operator">=</span> <span class="token number">2300</span> remote_port <span class="token operator">=</span> <span class="token number">8044</span>server_addr = xx.35.2.xx server_port = 7000 token = youfei123123 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 2200 remote_port = 8045 [ssh-2] type = tcp local_ip = 127.0.0.1 local_port = 2300 remote_port = 8044
- 编写客户端服务
<span class="token function">vim</span> /etc/systemd/system/frpc.service<span class="token function">vim</span> /etc/systemd/system/frpc.servicevim /etc/systemd/system/frpc.service
- 写入以下内容
<span class="token punctuation">[</span>Unit<span class="token punctuation">]</span> <span class="token assign-left variable">Description</span><span class="token operator">=</span>frpc <span class="token punctuation">[</span>Service<span class="token punctuation">]</span> <span class="token assign-left variable">Type</span><span class="token operator">=</span>simple <span class="token assign-left variable">Restart</span><span class="token operator">=</span>always <span class="token assign-left variable">RestartSec</span><span class="token operator">=</span>5s <span class="token assign-left variable">ExecStart</span><span class="token operator">=</span>/usr/bin/frpc -c /etc/frpc.ini <span class="token punctuation">[</span>Install<span class="token punctuation">]</span> <span class="token assign-left variable">WantedBy</span><span class="token operator">=</span>multi-user.target<span class="token punctuation">[</span>Unit<span class="token punctuation">]</span> <span class="token assign-left variable">Description</span><span class="token operator">=</span>frpc <span class="token punctuation">[</span>Service<span class="token punctuation">]</span> <span class="token assign-left variable">Type</span><span class="token operator">=</span>simple <span class="token assign-left variable">Restart</span><span class="token operator">=</span>always <span class="token assign-left variable">RestartSec</span><span class="token operator">=</span>5s <span class="token assign-left variable">ExecStart</span><span class="token operator">=</span>/usr/bin/frpc -c /etc/frpc.ini <span class="token punctuation">[</span>Install<span class="token punctuation">]</span> <span class="token assign-left variable">WantedBy</span><span class="token operator">=</span>multi-user.target[Unit] Description=frpc [Service] Type=simple Restart=always RestartSec=5s ExecStart=/usr/bin/frpc -c /etc/frpc.ini [Install] WantedBy=multi-user.target
- 重载配置文件使其生效(可忽略)
systemctl daemon-reloadsystemctl daemon-reloadsystemctl daemon-reload
- 启动客户端服务
systemctl start frpcsystemctl start frpcsystemctl start frpc
完结 然后就可以使用navicat等软件远程连接内网的数据库了 当然网址需要填公网服务器的公网IP 端口也要填remote_port 端口
账号密码填内网服务器的mysql账号密码
原文链接:https://blog.csdn.net/weixin_44259638/article/details/129388506
© 版权声明
声明📢本站内容均来自互联网,归原创作者所有,如有侵权必删除。
本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。
THE END