frp内网穿透

  1. 在带有公网ip的服务器上运行服务端
  • 在https://github.com/fatedier/frp/releases查到到相应的包
  • wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz下载
  • tar -zxvf frp_0.36.2_linux_amd64.tar.gz解压
  • cd tar -zxvf frp_0.36.2_linux_amd64
  • vi frps.ini
[common]
bind_port = 7000
token = xiyig #加入密码
  • 阿里云的服务器需开启相应的端口
  • ./frps -c ./frps.ini #运行服务端
  • 设置后台自动启动运行
  • 服务器运行服务创建:vi /lib/systemd/system/frps.serviceFprs
[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
ExecStart=/root/frp_0.36.2_linux_amd64/frps -c /frp_0.36.2_linux_amd64/frp/frps.ini  #此处路径根据实际情况修改

[Install]
WantedBy=multi-user.target
  • :wq保存退出
  • systemctl start fars #启动服务
  • systemctl enable frps #跟随系统启动
  • 1.reboot #重启服务器
  • 2.ps auxw #查看进程是否在运行

2.客户端配置

  • 如上下载解压进入目录
  • vi frpc.ini
[common]
server_addr = 184.***.220.***#服务器ip地址
server_port = 7000
token = xiyig#密码需和服务端的相同

[ssh]
type = tcp
local_ip = 192.***.192.***#内网ip
local_port = 22#映射端口
remote_port = 6000#访问端口

[bt]
type = tcp
local_ip = 192.168.192.136
local_port = 8888
remote_port = 8888
  • ./frpc -c ./frpc.ini 启动客户端
  • 自启运行如上 fars改为farc即可

3.Docker 安装

https://hub.docker.com/r/chenhw2/frp

4.域名的话加个解析通过域名访问

详细配置文档https://gofrp.org/docs/

服务端frps的启动与停止

# 启动frps
sudo systemctl start frps

# 打开自启动
sudo systemctl enable frps

# 重启应用
sudo systemctl restart frps

# 停止应用
sudo systemctl stop frps

# 查看应用的日志
sudo systemctl status frps

# 停止开机自启动
systemctl disable frps

服务端frpc的启动与停止

# 启动frps
sudo systemctl start frpc

# 打开自启动
sudo systemctl enable frpc

# 重启应用
sudo systemctl restart frpc

# 停止应用
sudo systemctl stop frpc

# 查看应用的日志
sudo systemctl status frpc

# 停止开机自启动
systemctl disable frpc

查看frp线程

ps -aux | grep frp

第2次编辑

我的公网服务器应搭建v2ray所以用域名不能80/443/有冲突所以换了个端口

  • frps配置
[common]
bind_port = 7000
token = 尼玛
vhost_https_port = 1443
vhost_http_port = 8080
subdomain_host = xiyi.bid

# frp管理后台端口,请按自己需求更改
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true

# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3
  • frpc配置
[common]
server_addr = 公网服务器
server_port = 7000
token = 密码
# 配置ssh服务
[ssh]
type = tcp
local_ip = 192.168.43.11
local_port = 22
remote_port = 6000  # 这个自定义,之后再ssh连接的时候要用

# 配置http服务,可用于小程序开发、远程调试等,如果没有可以不写下面的
[web]
type = http
local_ip = 192.168.43.11
local_port = 80
subdomain = www
remote_port = 8080
  • 1.caddy反向代理免加端口!!参考自:https://51.ruyo.net/3461.html

1.配置文件目录源文件

xix.win {
tls 124587606016@gmail.com
timeouts none
proxy / 127.0.0.1:1375 {
websocket
}
}
import sites/*

2.修改文件如下

xix.win {
tls 124587606016@gmail.com
timeouts none
proxy / 127.0.0.1:1375 {
websocket
}
}
import sites/*

http://www.xiyi.bid {
gzip
proxy / http://www.xiyi.bid:8080
}


下面作为参考修改

文章目录

利用 Caddy 轻松实现反向代理/镜像(支持自签SSL证书)

 

Caddy是一个使用 Go语言写的 HTTP Server,开发时间并不长,在性能上或许比不上 Nginx,但是在 上手难度/配置难度 上面简单的不行不行的。

并且 Caddy支持 自动签订Let’s Encrypt SSL证书,什么都不需要你管,只需要提供一个邮箱,剩下的他会自己申请、配置和续约 SSL证书!

本文属于无脑转载自 逗比哥的文章 ~

 

官网地址

https://caddyserver.com

 

部署 Caddy

Caddy 是 Go语言编译好的二进制程序,所以只有一个 Caddy 文件(还需要生成一个配置文件),但是为了管理方便,所以我做了个一键脚本。

 

 

配置文件

Caddy的特点之一就是,配置文件非常的简单,继续下面看就知道了。

 

服务器IP 反向代理

下面是一个,用你服务器的IP 来反向代理一个 http 协议的网站 http://www.baidu.com

一次性复制以下全部代码,并粘贴到SSH中执行:

 

域名 反向代理 HTTP

下面是一个,用你的域名 来反向代理一个 http 协议的网站 http://www.baidu.com

以下所有示例域名为 toyoo.ml ,请注意替换为 自己的域名 !

一次性复制以下全部代码,并粘贴到SSH中执行:

如果你需要反向代理 HTTPS 协议的网站,比如 https://www.baidu.com ,那么继续看下面步骤。

 

域名 反向代理 HTTPS

如果你有 SSL证书和密匙的话,把 SSL证书(xxx.crt)和密匙(xxx.key)文件放到 /root 文件夹下(也可以是其他文件夹,自己改下面代码),然后这样做:

一次性复制以下全部代码,并粘贴到SSH中执行:

如果你没有 SSL证书和密匙,那么你可以这样做:

下面的 xxxx@xxx.xx 改成你的邮箱,同时需要注意的是,申请 SSL证书前,请务必提前解析好域名记录(解析后最好等一会,以全球生效),否则 Caddy会申请并配置失败!

一次性复制以下全部代码,并粘贴到SSH中执行:

如果一切正常,那么Caddy会自动帮你申请 SSL证书并配置好,而且会定时续约SSL证书 和 强制 http重定向至https !

 

上面这两段示例中,只要把 https://www.baidu.com 改成 https://www.google.com ,即可实现反向代理 Google了!

需要注意的是,因为墙会检测关键词,所以请务必使用 HTTPS协议,不要使用 HTTP协议,否则很快就会被墙!

 

HTTP重定向为HTTPS

 

当你是手动指定 SSL证书和密匙 来配置的话,Caddy只会监听 443端口(https),并不会自动设置 80端口(http)的重定向(如果是Caddy自动申请的SSL证书,那么就自动做好了),如果要做重定向的话,可以这样做:

下面的示例代码中,是把 http://toyoo.ml、http://233.toyoo.ml、https://666.toyoo.ml 三个域名都重定向到了 https://toyoo.ml

一次性复制以下全部代码,并粘贴到SSH中执行:

修改完 Caddy的配置文件后,重启 Caddy即可。

 

使用说明

启动:service caddy start

停止:service caddy stop

重启:service caddy restart

查看状态:service caddy status

查看Caddy启动日志: tail -f /tmp/caddy.log

Caddy配置文件位置:/usr/local/caddy/Caddyfile

 

卸载 Caddy

执行以下代码后,会问你是否确定要卸载 Caddy,输入 y 即可。

 

 

其他说明

单网站/多网站

当然,上面的几个示例,实际上都算是单网站。

最后一句代码都是 }" > /usr/local/caddy/Caddyfile ,也就是清空了 Caddy配置文件,然后再写入了配置信息。

如果你要设置多个网站,那么把最后一句代码改成 }" >> /usr/local/caddy/Caddyfile 即可,注意是把 > 改成 >> ,这样就不会清空原来的配置信息了,而是会把要添加的配置信息加到配置文件最后!

网页加密

什么?担心自己做的镜像不小心爆露被滥用?没事,设置一下用户名和密码即可,只需要在上面的示例中加入这行代码:

user指的是 用户名,passwd指的是 用户名密码,设置这个后,访问网页就需要输入用户名和密码来验证了!

修改配置文件后,记得重启 Caddy !

配置示例:

记录日志

如果你想要记录网站访问日志,那么只需要在上面的示例中加入这行代码:

修改配置文件后,记得重启 Caddy !

配置示例:

日志文件的位置和名字可以自己改,放到 /tmp 文件夹的话,每次重启都会自动清空日志的。

Caddy启动失败,打开 http://ip 显示的是 It works !

一些系统会自带 apache2 ,而 apache2 会占用80端口,导致Caddy无法绑定端口,所以只要关掉就好了。

不过 apache2 会默认开机自启动,如果不需要可以关闭自启动或者卸载 apache2 。

停止 Apache2

取消开机自启动

卸载 Apache2

关闭 Apache2后,就可以尝试启动 Caddy ,并试试能不能打开网页。

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注