frp 穿透内网 阿里云服务器和ubuntu本地服务器
1 服务端配置(这里是阿里云服务器)
下载frp,然后在frps.ini中修改端口,这里已经安装好了不需要管。
(如果没配置的参照客户端的配置,只是是在frps.ini中进行修改)
2 客户端配置(本地的服务器)
最好和云服务器上的版本一致,下载地址
https://github.com/fatedier/frp/releases/tag/v0.32.0,
下载frp_0.32.0_linux_amd64.tar.gz
新建文件夹
mkdir -p /usr/local/frp
将压缩包移到文件夹下(前面文件的路径根据自己的写)
mv ./Downloads/frp_0.32.0_linux_amd64.tar.gz /usr/local/frp/
进入这个文件夹并解压
cd /usr/local/frp/
tar -zxvf frp_0.32.0_linux_amd64.tar.gz
cd frp_0.32.0_linux_amd64
修改配置
vim ./frpc.ini
修改内容如下,主要是修改sever_addr [ssh3] remote_port其他不变
[common]
server_addr =47.XXX.XXX.XXX #公网服务器ip
server_port = 7000 #与服务端bind_port一致
#公网通过ssh访问内部服务器
[ssh3]
type = tcp #连接协议
local_ip = 127.0.0.1 #内网服务器ip
local_port = 22 #ssh默认端口号
remote_port =7001 #自定义的访问内部ssh端口号
保存后执行
./frpc -c ./frpc.ini
启动,这是前台启动,后台启动命令(验证完可用后后台启动):
nohup ./frpc -c ./frpc.ini &
到这里理论上就能通过外面的端口访问了,
ssh -oPort=7001 Elastos@47.xxx
但是实际出现了很多问题
1.本地(不是上面配置的内网服务器)连接ssh超时
解决方法:
内网服务器要有sshd服务
终端输入
rpm -qa | grep openssh-server
如果没有内容显示
sudo apt-get install openssh-server
安装完成后,启动sshd
service sshd start
查看状态,active才行
service sshd status
查看防火墙是否关闭(ubuntu默认关闭),结果是inactive就可以
sudo ufw status
开放22端口
sudo ufw allow 22
2 上面都设置对了,那可能是云端服务器的端口没有打开,要打开云服务器的安全组将端口号(比如刚刚的7001)加进去,百度“阿里云安全组”之类的就可以找到相应解决办法
3 如果本地的服务器的ip改成192.168.xxx.xxx的形式一定要检查自己的ip是否正确!
4 还有可能是ssh 数量设置的问题,就在ssh/config文件里设置相应的而数量,百度即可
开机自启动命令
vim /etc/systemd/system/frpc.service
添加以下内容
[Fusion]
Description=Frp Server Daemon
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/local/frp/frp_0.32.0_linux_amd64/frpc -c /usr/local/frp/frp_0.32.0_linux_amd64/frpc.ini # 修改为你的frp实际安装目录
ExecStop=/usr/bin/killall frpc
#启动失败1分钟后再次启动
RestartSec=1min
KillMode=control-group
#重启控制:总是重启
Restart=always
[Install]
WantedBy=multi-user.target
然后执行以下命令启用脚本:
sudo systemctl enable frpc.service
sudo systemctl start frpc.service
通过下面的命令查看服务状态,如果是running的话就说明可以了:
sudo systemctl status frpc.service