首页 > 其他分享 >使用frp端口映射实现内网穿透(SSH、HTTP服务)

使用frp端口映射实现内网穿透(SSH、HTTP服务)

时间:2022-11-13 10:45:25浏览次数:78  
标签:HTTP frps 端口 frp SSH 内网 port ini

文章共 1,262 字,阅读完预计需要 2 分钟 7 秒。文章篇幅适中,可以放心阅读。

参考:[使用frp端口映射实现内网穿透(SSH、HTTP服务) - 勇者の小栈](https://www.ken-chy129.cn/archives/77)

一、下载

通过内网穿透的原理和实现方式的学习我们已经明白了内网穿透的原理,想要实现内网穿透就需要让内网实现与具有公网IP的设备进行绑定。

我们这里使用frp(一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网)进行内网穿透。下载地址:https://github.com/fatedier/frp/releases

我们需要在内网设备和公网设备上都进行frp的下载。

  • fprc:客户端程序;(内网程序)
  • frpc.ini:客户端程序配置文件;
  • frps:服务网器端程序;(公网程序,进行端口映射服务)
  • frps.ini:服务器端程序配置文件;

二、基础配置配置

1)对于公网设备,我们需要配置frps.ini文件

  [common]
  bind_port = 7000
  token = 129496
   
  dashboard_addr = 0.0.0.0
  dashboard_port = 7500
  dashboard_user = root
  dashboard_pwd = xxxx
  1. bind_port:用户客户端与服务端连接的端口(让外网设备可以将请求信息转发给内网让内网主动与发起请求设备进行连接)
  2. token:认证密码
  3. dashboard:仪表盘
    • addr:服务器本机
    • port:仪表盘网页绑定在服务器的端口
    • user:访问仪表盘网页的用户名
    • pwd:密码

2)对于内网设备,我们需要配置frpc.ini文件

  [common]
  server_addr = ip
  server_port = 7000
  authentication_method = token
  token = xxxxx
  1. server_addr:服务器(公网设备)IP
  2. server_port:服务器端口(有了IP和端口后内网即可进行NAT穿透,让公网设备可以将请求转发给自己),需与服务器bind_port的设置保持一致
  3. authentication_method:采用token的认证方式
  4. token:认证密码,需与服务器的设置保持一致

3)服务器端开放7000端口和7500端口

三、实现SSH服务

1)在原本客户端的frpc.ini配置基础上增加

  # 配置ssh服务
  [ssh]
  type = tcp
  local_ip = 127.0.0.1
  local_port = 22 # ssh服务端口
  remote_port = 6000 # 这个自定义,之后再ssh连接的时候要用

注释记得去除

  1. [ssh]:[服务名]
  2. type:表示想要实现的服务对应的协议
  3. local_ip:表示本地需要暴露到公网的服务地址,即内网对应的地址
  4. local_port:表示本地需要暴露到公网的端口,即内网监听的端口,由于是ssh服务故监听22端口
  5. remote_port:表示在 frp 服务端监听的端口,访问外网设备此端口的流量将会被转发到内网设备的对应端口(local_port)

2)服务器端开放6000端口

3)运行程序

  • 服务器端:./frps -c ./frps.ini
  • 客户端:./frpc -c ./frpc.ini

4)使用ssh连接工具,通过外网ip加6000端口号即可以与内网建立ssh连接

四、实现HTTP、HTTPS服务

1)在原本客户端的frpc.ini配置基础上增加

  [http]
  type = http
  local_ip = 127.0.0.1
  local_port = 8800
  custom_domains = xxx

此处与SSH服务配置相似,只是将type更改为http并多设置一个custom_domains

custom_domains = 这里填写你已经解析到frps服务端IP上的域名,自己每个穿透对应服务,都可以绑定一个专属域名用于访问,包括使用tcp和udp协议,然后就可以通过这个已经自定义域域名访问到自己的对应HTTP服务

如果没有域名则先写外网ip即可

注意这里没有设置remote_port,http服务和http服务的访问端口在服务器端设置

2)在原本服务端的frps.ini配置基础上增加

  vhost_http_port = 7600
  vhost_https_port = 7601

vhost_http_port = 7600 和 vhost_https_port = 7601 表示将服务器的7600端口做为http服务的访问入口,7601端口做为https服务的访问入口

3)服务器端开放7600端口、如果配置了https服务则开放7601端口

4)运行程序

5)通过域名/ip+端口访问内网的http/https服务

五、frp服务自启动

  1. 进入frp目录,复制文件

    • cp frps /usr/local/bin/frps
    • mkdir /etc/frp
    • cp frps.ini /etc/frp/frps.ini
  2. 创建frps.service服务:vim /lib/systemd/system/frps.service

    •   [Unit]
        Description=frpc daemon
        After=syslog.target network.target
        Wants=network.target
         
        [Service]
        Type=simple
        ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini
        Restart=always
        RestartSec=1min
        ExecStop=/usr/bin/killall frps
         
        [Install]
        WantedBy=multi-user.target
  3. 设置开机自启动:systemctl enable frps

  4. 开启服务:systemctl start frps

  5. 查看状态:systemctl status frps

image-20220716191807877active(running)则表示启动成功

Q.E.D.

标签:HTTP,frps,端口,frp,SSH,内网,port,ini
From: https://www.cnblogs.com/ministep/p/16885521.html

相关文章

  • Windows系统中使用GIT通过SSH连接Github
    打开GitBash运行以下代码:gitconfig--globaluser.name"XXXXX"#这里XXXXX为github的用户名gitcongif--globaluser.email"[email protected]" #github的注册邮箱......
  • CentOS 7使用ttyd搭建一个WEB共享终端(WebSSH)
    官网下载地址:​​https://github.com/tsl0922/ttyd/releases​​下载ttyd:wget-Ottyd​​https://github.com/tsl0922/ttyd/releases/download/1.6.0/ttyd_linux.x86_64......
  • Http协议
    HTTP协议超文本传输协议用来规定服务端和浏览器之间的数据交互的格式#四大特性基于请求响应基于TCP/IP作用于应用层之上的协议无状态不保存用户的信由于HTTP协议......
  • ssh创建密钥登录
    创建密钥ssh-keygen-mPEM-trsa-b4096参数:-mPEM=密钥格式PEM-trsa要创建的密钥类型,本例中为RSA格"rsa1"(SSH-1)"rsa"(SSH-2)"dsa"(SSH-2)-b4096......
  • 10.http客户端feign
    http客户端feignRestTemplate方式调用存在的问题先来看我们以前利用RestTemplate发起远程调用的代码:Stringurl="http://userservice/user/"+order.getUserld();Us......
  • okHttp工具类
    importcom.google.gson.Gson;importokhttp3.*;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.util.StringUtils;importj......
  • HTTP response
    response来响应这个请求。http header请求完成之后,你的浏览器可能会收到如下的HTTP响应:200 OKTransfer-Encoding: chunkedDate: Sat, 28 Nov 2009 04:36:25 GMT......
  • ssh远程主机秘钥失效的解决方法(ssh黄金参数)
    问题描述在使用秘钥(无密)登录服务器时有如下警告:Warning:theECDSAhostkeyfor'${hostname}'differsfromthekeyfortheIPaddress'${hostip}' 解决方案......
  • CentOS 7 升级OpenSSH 9.1p1记录
    因服务器被扫描出漏洞,需要对OpenSSH升级,遇到一些波折,记录如下。安装配置telnet服务OpenSSH用于远程登录,一旦升级失败用不了,将无法远程登录,安装telnet-server备用。yumi......
  • ssh 代理-缓存ssh私钥
    当把私钥交给sshagent管理的好处当其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。使用不同的密钥连接到不同的主机时,需要要手动指......