0001_20190327_使用frp搭建内网穿透

1. 环境

a)         公网服务器为阿里云的ECS  Windows  2008 R2服务器, 有公网IP地址; 这个作为frp的服务器

b)         内网是开发服务器, Centos 7

c)         在https://github.com/fatedier/frp/releases 下载最新的frp包  ;当前最新的是0.25.3(2019年3月27日21:55:28)

d)         其中windows_amd64对应的就是windows 64位系统; linux_amd64对应的就是64位linux系统;

2. 先说配置windows服务器端:

a)  把frp_0.25.3_windows_amd64.zip复制到服务器上, 解压到C:\frp的目录下, 没有用的删除, 下图:

   

  b)         修改frps.ini文件, 输入以下内容:

[common]

bind_addr = 0.0.0.0

bind_port = 7000

dashboard_port = 7500

dashboard_user = admin

dashboard_pwd = admin

log_file = ./frps.log

log_level = error

token = 12345678

  下图:

   

  c)         管理员命令打开cmd, 输入下图命令回车, 启动frps服务:

    C:\Users\Administrator>c:\frp\frps.exe -c c:\frp\frps.ini

  

  d)         打开任务管理器, 看看frps.exe启动没有

   

  e)         使用浏览器访问公网IP地址:7500,在输入admin/admin后将看到下图界面:

   

2. Frp服务器端配置完毕; 接下来配置frp客户端, 因为客户端是内网用的Centos 7开发服务器, 所以需要先下载frp_0.25.3_linux_amd64.tar.gz; 使用xftp工具上传到指定目录:

  a) 这里上传到/thisdirsavfile/, 这个目录是我自己建的,当然使用wget也可以, 下图:

   

  b)解压到指定目录:

[root@localhost thisdirsavfile]# mkdir /usr/frp
[root@localhost thisdirsavfile]# tar zxvf frp_0.25.3_linux_amd64.tar.gz -C /usr/frp

c) 编辑frpc.ini文件:

[root@localhost frp]# vim frp_0.25.3_linux_amd64/frpc.ini

#输入下面的内容

[common]

server_addr =你的IP地址

server_port = 7000

token = 12345678(这个token一定要和服务器的对应)

[ssh]

type = tcp

local_ip = 127.0.0.1

local_port = 22

remote_port = 6000

  d)  启动客户端的frp服务:

[root@localhost frp]# cd frp_0.25.3_linux_amd64/

  [root@localhost frp_0.25.3_linux_amd64]# ./frpc -c ./frpc.ini

2019/03/28 03:45:14 [I] [service.go:221] login to server success, get run id [8a139b4ec11a8e1b], server udp port [0

2019/03/28 03:45:14 [I] [proxy_manager.go:137] [8a139b4ec11a8e1b] proxy added: [ssh]

2019/03/28 03:45:14 [I] [control.go:144] [ssh] start proxy success 

  e)使用Xshell进行测试连接:

   i.  新建会话

 

    ii. 这里是输入内网linux服务器的用户名和密码:

 

     iii.输入完密码之后即可穿透成功

  f) 注意的问题:

         i.  因为是阿里云的服务器, 所以一定要在安全组放行frp使用到的端口

         ii.  我这里内网开发的服务器, 所以直接把Centos 的防火墙关了, 端口放行的问题根据自己的实际情况

         iii.  注意服务端和客户端frp的token一定要对应

         iv.  停止windows的服务器端, 到任务管理器中把frps.exe结束任务

         v. 停止linux上的frpc, 则使用下面的命令:

[root@localhost frp_0.25.3_linux_amd64]# ps -aux|grep frp
root       793  0.0  0.0 112724   988 pts/1    S+   04:39   0:00 grep --color=auto frp
root     32303  0.0  0.0 112648 12332 pts/0    Sl+  04:22   0:00 ./frpc -c ./frpc.ini
[root@localhost frp_0.25.3_linux_amd64]# ps -aux|grep frp|grep -v grep
root     32303  0.0  0.0 112648 12332 pts/0    Sl+  04:22   0:00 ./frpc -c ./frpc.ini
[root@localhost frp_0.25.3_linux_amd64]# kill -9 32303

   vi. 作为后台服务启动, 如果不作为后台服务启动, 你的ssh一关闭, 服务也关闭了

[root@localhost ~]# nohup /usr/frp/frp_0.25.3_linux_amd64/frpc -c /usr/frp/frp_0.25.3_linux_amd64/frpc.ini 

  vii. 使用脚本设置开机启动, 并后台运行

[root@localhost ~]# vim /usr/lib/systemd/system/frpc.service 

[Unit]
Description=frpc
After=network.target

[Service]
TimeoutStartSec=30

ExecStart=/usr/frp/frp_0.25.3_linux_amd64/frpc -c /usr/frp/frp_0.25.3_linux_amd64/frpc.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

  viii. 执行脚本命令:

[root@localhost ~]# systemctl enable frpc  --开机启动
[root@localhost ~]# systemctl start frpc  --启动frpc
[root@localhost ~]# systemctl stop frpc --停止frpc

  iv. token错误:

[root@localhost frp_0.33.0_linux_amd64]# ./frpc -c ./frpc.ini
2020/06/24 15:35:02 [E] [service.go:273] token in login doesn't match token from configuration
2020/06/24 15:35:02 [W] [service.go:101] login to server failed: token in login doesn't match token from configuration
token in login doesn't match token from configuration

不知道怎么回事, 后来把 frpc.ini里的token直接删了, 就可以了

 

 

 

 

posted on 2019-03-27 22:47  印子  阅读(3621)  评论(0编辑  收藏  举报

导航