Frp内网穿透-ssh&&http

Share,Linux 2023-04-12 182 次浏览 次点赞

用wget直接在终端下载GitHub上release的压缩包Releases · fatedier/frp (github.com),找符合你服务器的版本将下边的链接替换掉就行,解压缩的时候别忘了也替换掉。

# 下载压缩包
wget https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_linux_amd64.tar.gz

# 解压压缩包到 /usr/local/bin 目录下
sudo tar -xzvf frp_0.48.0_linux_amd64.tar.gz -C /usr/local/bin --strip-components=1

在宝塔面板上看也行,在终端用命令也行,看你的喜好。我这就直接在宝塔上看了。

1.jpg

这是有公网ip的服务器,所以配置frps就行,s就是server的意思,c就是client的意思。

[common]
# 绑定本机
bind_addr = 0.0.0.0
# 绑定端口号
bind_port = xxx
kcp_bind_port = xxx
# 面板的端口号
dashboard_port = xxx
# 面板用户
dashboard_user = xxx
# 面板密码
dashboard_pwd = xxxx
vhost_http_port = xxxx
vhost_https_port = xxxx
log_file = ./frps.log
log_level = info
log_max_days = 3
token = xxxx
max_pool_count = 50
tcp_mux = true

具体配置信息看官网,讲的很清楚文档 | frp (gofrp.org)

使用systemd便捷启动frp


  1. 如Linux服务端上没有安装 systemd,可以使用 yumapt 等命令安装 systemd

    # yum
    yum install systemd
    # apt
    apt install systemd
  2. 使用文本编辑器,如 vim 创建并编辑 frps.service 文件。

    $ vim /etc/systemd/system/frps.service

    写入内容

    [Unit]
    # 服务名称,可自定义
    Description = frp server
    After = network.target syslog.target
    Wants = network.target
    
    [Service]
    Type = simple
    # 启动frps的命令,需修改为您的frps的安装路径!!!!!!别忘了改成你自己的~~~~~~
    ExecStart = /xxx/xxx/frps -c /xxxx/xxx/frps.ini
    
    [Install]
    WantedBy = multi-user.target
  3. 使用 systemd 命令,管理 frps。

    # 启动frp
    systemctl start frps
    # 停止frp
    systemctl stop frps
    # 重启frp
    systemctl restart frps
    # 查看frp状态
    systemctl status frps
  4. 配置 frps 开机自启。

    systemctl enable frps

这边官网上有,注意别忘了把ExeStart换成你自己的就行。这是服务端,客户端就改个名,frpc就行。因为我的内网机子也是用的Centos。


再看我内网客户端配置:

[common]
server_addr = 公网ip地址
server_port = frps的bind_port一项
token = 你设的Token

[ssh]
type = tcp
local_ip = 内网ip地址
local_port = 本机端口号,因为是要ssh连接,所以设成了22
remote_port = 公网服务器的服务端监听的端口不是bind_port

[web]
type = http
local_port = 80
custom_domains = 域名,绑定在公网ip上的
local_iplocal_port 配置为本地需要暴露到公网的服务地址和端口。remote_port 表示在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口。

frps 和 frpc都启动后,要是没有问题的话,面板上就有信息了。

2.jpg

3.jpg

截图软件是Snipaste,需要的自己去下,一个朋友推荐的,贴图功能挺好用的。

通过ssh访问内网机器

通过 SSH 访问内网机器,假设用户名为 test:

ssh -oPort=6000 test@x.x.x.x

frp 会将请求 x.x.x.x:6000 的流量转发到内网机器的 22 端口。

官网那么说的,我是直接用xshell连接的,方便点。

4.jpg

那个端口号就是服务端监听的端口号,不是22,除非你在服务端设成22,那你服务端可能就进不去ssh了,我没试过反正。然后用户名和密码填写你内网主机的,别写成有公网ip服务器的。

完事就能正常进去,就跟你用ssh 22 端口号连内网主机一样。因为frpsfrpc已经做了连接,你访问监听端口号的流量会被转发到内网主机上的22端口,呃,不知道这么说对不对,大体应该是这样,看官方文档就行了,我这只是记录下。


http那个web没啥好说的,就是typecho得先关闭https,不然访问的时候有问题,后台进不去。(我的博客用的typecho,其他的没怎么用过)

停用TypechoHTTPS

  1. Typecho的根目录下,找到config.inc.php文件,并使用文本编辑器打开该文件。
  2. config.inc.php文件中,找到以下代码:
define('__TYPECHO_SECURE__', true);
  1. 将上述代码中的true值改为false,即:
define('__TYPECHO_SECURE__', false);
  1. 保存修改并退出文本编辑器。
  2. 刷新网站页面,查看修改是否生效。

然后就能正常的进后台发布文章了。开启https要装一个https2http插件,我还没来得及弄,过两天再弄。


本文由 fmujie 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论

召唤看板娘