使用frp进行内网穿透


title: '使用frp进行内网穿透'
date: 2019-11-06 16:08:42
tags: [tools,frp,shell]
published: true
hideInList: false
feature:


公司内网搭了一台电脑搭了一套服务,由于没有公网ip,需要ssh直接远程的话是不行的。查了很多资料,发现通过内网穿透可以解决这个问题。比较了目前内网穿透的方案(花生壳、ngrok、frp...),最终选择frp进行内网穿透。

环境

一台vps服务器作为frp服务器端,阿里云,腾讯云,亚马逊云都可以。
需要让外网能够远程的机器,必须保证自身可以上外网。
所用的云服务器以及内网机器皆为centos7.7。

部署

#!/bin/bash
[ ! -d /home/soft/frp ] && mkdir -p /home/soft/frp
cd /home/soft/frp
kill -9 `ps -ef | grep frp | grep -v grep | awk '{print $2}'`
rm -rf /home/soft/frp/*
wget https://github.com/fatedier/frp/releases/download/v0.15.1/frp_0.15.1_linux_amd64.tar.gz
tar zxvf frp_0.15.1_linux_amd64.tar.gz
cd frp_0.15.1_linux_amd64
while :
do
  read -p 'server or cilent ? input: s or c
' op
  if [[ "$op" = "c" ]] || [[ "$op" = "s" ]];then
    break
  else
    echo "please input again;"
  fi
done
case $op in
  c)
    read -p 'input server addr:' server_addr
    this_line=`sed -n '/server_addr/=' ./frpc.ini`
    sed -i ''${this_line}' d' ./frpc.ini
    sed -i ''${this_line}'i server_addr = '${server_addr}'' ./frpc.ini
    read -p 'input remote port:' remote_port
    this_line=`sed -n '/remote_port/=' ./frpc.ini`
    sed -i ''${this_line}' d' ./frpc.ini
    sed -i ''${this_line}'i remote_port = '${remote_port}'' ./frpc.ini
    this_id=`date "+%y%m%d%H%M"`
    this_id='ssh'${this_id}
    sed -i 's#ssh#'$this_id'#g' ./frpc.ini
    nohup ./frpc -c ./frpc.ini > log &
    ;;
  s)
    nohup ./frps -c ./frps.ini >log &
    ;;
  *)
    echo 'maybe something wrong...'
    ;;
esca

以上是linux环境的,windows客户端有所不同;
进入安装包地址,32位选择frp_0.15.1_windows_386.zip,64位选择frp_0.15.1_windows_amd64.zip。
下载解压,frpc.ini配置如下:

#frpc.ini
[common]
server_addr = X.X.X.X
server_port = 7000

[RDP]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 789

之后双击frpc.exe运行即可;
另外windows下需要关闭防火墙以及打开可以远程功能,如下图所示。


mst.jpg

参考

内网穿透参考
frp参考
frp-windows参考

你可能感兴趣的:(使用frp进行内网穿透)