快速搭建frp的ssh和http的内网穿透

1 篇文章 0 订阅

在看了好多篇文章之后,总算弄懂了是怎么配置的,我这里是参考的是几个大神的文章,并把自己遇到的坑写出来了

1.https://blog.csdn.net/weixin_36241363/article/details/78457359

2.https://blog.csdn.net/u012198893/article/details/82348605

3.https://blog.csdn.net/u013144287/article/details/78589643

 

 

1.环境准备

需要准备的东西有一台需要做内网穿透的内网服务器(客户端),一台可以访问外网的服务器(服务端)(阿里云等)以及一个已经备案的域名(若仅做ssh内网穿透不需要)。

 

2.外网服务器(阿里云服务器)SSH环境配置

先下载frp(建议放到/usr/local/frps目录下)

cd usr/local
mkdir frps
cd frps
wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz 
tar -zxvf frp_0.13.0_linux_amd64.tar.gz

进入到frp的解压目录下

cd /usr/local/frps/frp_0.13.0_linux_amd64
ls

进入目录中可以看到 frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE 这七个文件

1.frpc:客户端可执行程序

2.frpc_full.ini:客户端所有配置项(可以再此文件查看frp的所有的配置项)

3.frpc.ini:客户端配置项

4.frps:服务端可执行程序

5.frps_full.ini:服务端所有配置项(可以再此文件查看frp的所有的配置项)

6.frps.ini:服务端配置项

7.LICENSE:许可证

 

在服务端我们不需要客户端的可执行程序和配置,为了避免误操作,我们可以先删除掉所有客户端的配置

 

rm -rf frpc frpc_full.ini frpc.ini

接下来可以对服务端配置进行修改:

vi frps.ini

 

可以看到只有一行代码 :bind_port = 7000

默认的配置信息中只有一个绑定端口为7000,意思是我们在外网服务器中绑定7000端口和客户端进行通信。注:端口可以自定义,但是需要客户端和服务端进行统一。阿里云服务器需要在esc管理中配置安全组规则中添加7000端口

 

 

 

我们要把它改为:

bind_port = 7000
vhost_http_port = 80
vhost_https_port = 443

 

我们将请求域名作转发处理,因为vhost_http_port=80占用了80端口,导致生产环境上得网站不能直接通过域名来访问,如果vhost_http_port不等于80则导致访问通过子域名访问内网环境都需要在url后面加上81端口。

 

保存然后启动服务./frps -c ./frps.ini,这是前台启动,后台启动命令为nohup ./frps -c ./frps.ini &

建议后台启动前先前台启动看有无报错

nohup ./frps -c ./frps.ini &

 

若出现了 nohup: ignoring input and appending output to ‘nohup.out’

或者nohup: failed to run command `xxx.sh’: Permission denied

 

错误原因:文件没有写入权限。就算你用sudo chmod给文件加权限也没用。

解决方法:

 

nohup ./frps -c ./frps.ini > /dev/null 2> /dev/null &

这样他会给你输入到 /dev/null 这个特别的文件下面。它像一个linux黑洞,所有重定向到它的信息都会自动消失。如果你的输入日志很重要的话就不建议重定向到/dev/null中了

 

若是说80端口已被占用

 

 

则通过netstat -nap 查看程序运行的pid,查找80端口,记住PID

然后执行 kill PID杀死进程

 

以上是外网服务器最基本的一个配置。十分简单

 

 

 

 

3.内网服务器SSH环境配置

内网服务器与外网服务器一样,首先将安装包下载到内网服务器的/usr/local/frpc目录下,然后删除掉我们不需要的服务端文件

cd usr/local
mkdir frpc
cd frpc
wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz 
tar -zxvf frp_0.13.0_linux_amd64.tar.gz
rm -rf frps frps_full.ini frps.ini

接着修改我们的客户端配置文件frpc.ini

vi frpc.ini

客户端默认配置改为如下:

[common]
server_addr = xxx.xx.xx.xxx   #公网服务器ip
server_port = 7000            #与服务端bind_port一致
 
#公网通过ssh访问内部服务器
[ssh]
type = tcp              #连接协议
local_ip = xxx.xx.xx.xxx#内网服务器ip
local_port = 22         #ssh默认端口号
remote_port = 6000      #自定义的访问内部ssh端口号 注:阿里云服务器需要在esc管理中配置安全组规则中添加6000端口

#通过tcp来连接mysql
[mysql]
type = tcp
local_port = 3306
remote_port = 3306 

#公网访问内部web服务器以http方式
#[web01]
#type = http         #访问协议
#local_port = 81   #内网web服务的端口号
#custom_domains = yuming1.com   #所绑定的公网服务器域名,一级、二级域名都可以

#[web02]
#type = http         #访问协议
#local_port = 82   #内网web服务的端口号
#custom_domains = yuming2.com   #所绑定的公网服务器域名,一级、二级域名都可以

注意 custom_domains表示配置为一个已经备案的域名(必填,并且需要域名可用),并且域名解析配置为外网服务器ip

保存前把frpc.ini文件里的注释都删掉,以免报错

保存然后执行./frpc -c ./frpc.ini启动,这是前台启动,后台启动命令为nohup ./frpc -c ./frpc.ini &

建议后台启动前先前台启动看有无报错

nohup ./frpc -c ./frpc.ini &

现在可以愉快的访问内网的域名了!

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值