内网穿透踩坑

目的:在本地服务器22端口被占用的情况下,通过内网穿透和公网ip,使得本地服务器的资源可以被外部使用

已知的解决方案有ngrok和frp.

首先尝试ngrok。

ngrok服务端目前先在10000端口运行
本地服务器命令:./ngrok -log=ngrok_log.txt -subdomain=test -config="ngrok.cfg" 23
即要转发的23服务端口

公网ip服务器命令:
./ngrokd -domain="server_ip" -httpAddr=":server_port"  -tlsKey=/home/centos/ngrok/device.key -tlsCrt=/home/centos/ngrok/device.crt

参考文章:
https://my.oschina.net/dingdayu/blog/736911
https://bugwz.com/2017/04/27/ngrok-secure-tunnels-to-localhost/


VPS上的命令:
./ngrokd -domain="server_ip" -httpAddr=":server_port"
本地master上的命令:
 ./ngrok -log=ngrok.log -config=ngrok.cfg start telnet

但是ngrok开启服务后,客户端可以显示已经有连接,但是telnet始终没有办法登录,于是放弃,

转用frp


这里的frp是使用telnet方式远程登录主机,先要开启telnet服务,
参考https://blog.csdn.net/l370398095/article/details/70598632

frp开机自启
cd /etc/systemd/system
touch sss.service
vim sss.service
输入:
[Unit]
Description=frps daemon

[Service]
Type=simple
ExecStart=/home/csu/bigdata/frp/sss -c /home/csu/bigdata/frp/sss.ini

[Install]
WantedBy=multi-user.target
接着:
systemctl daemon-reload    
systemctl enable sss
systemctl start sss
    

内网穿透mysql连不上,报错Lost connection to MySQL server at 'reading initial communication packet'
参考文章https://blog.csdn.net/nairuohe/article/details/8107328
将/etc/mysql/mysql.conf.d/mysqld.cnf里的bind-address注释掉
接着systemctl restart mysql即可连接上
frpc.ini里的mysql配置:
[mysql]
type = tcp
local_port = 3306
remote_port = 3306

hadoop50072端口映射踩坑
需要注意的是由于hadoop配置文件里50072是在master上,不是在localhost上
,所以只能这么写:
[web01]
type=http
local_ip = master
local_port = 50072
custom_domains = yoursettings.com
 

你可能感兴趣的:(linux)