VPS服务器_CentOS9_Squit5.5_Frp0.69部署

1、完成内网端口映射透传到公网,实现内部应用发布,比如家里的黑群晖、局域网PC的远程桌面等,为无公网ip,动态ip的访问提供了简易的方式,投入成本极低;
2、支持内网PC突破GFW限制访问外网,这个嘛,懂得都懂(谨慎使用,应合法依规。)

之前一直犹豫要不要Squid,因为Frp本身也支持Basic代理,简单对比后觉得还是加上Squid更适合。
配置:Squid 开启 Basic 账号密码验证 + Firefox 代理填凭据 + 原有 FRP XTCP/STCP 架构不变

链路:Firefox (填代理账号密码)→本机 127.0.0.1:13128 (frpc visitor)→XTCP/P2P 或 STCP→VPS-frpc→VPS:Squid (账号鉴权),第一次访问会触发 代理认证弹窗–正是 Squid 启用密码后的正常表现(默认凭据有效期2小时)。



方案
优点缺点
只用 FRP少装 Squid、配置精简、无 Squid 版本兼容报错、FRP 统一管理端口无法自定义缓存规则(你日常上网不需要缓存)
FRP+SquidSquid 缓存网页节省流量、精细 ACL 域名拦截多一层服务、频繁配置语法报错、维护繁琐

一、VPS端Squid安装与配置

1、安装依赖工具
dnf groupinstall -y “Development Tools”
dnf install -y openssl-devel libcap-devel libxml2-devel expat-devel perl httpd-tools
dnf remove -y squid #如有则卸载旧的squid,避免冲突
setenforce 0
sed -i ‘s/^SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config
#关闭系统SElinux防火墙(非必须,不关闭则需要打开设计的所有端口,否则无法访问)
mkdir -p /usr/local/src && cd /usr/local/src #创建目录
wget http://www.squid-cache.org/Versions/v5/squid-5.5.tar.gz #下载应用包
tar -zxvf squid-5.5.tar.gz #解压
rm squid-5.5 squid #目录改名
cd squid #进入目录

2、创建代理账号(自定义:用户 user,你的密码
-c新建密码文件,后续加用户去掉-c
htpasswd -c /etc/squid/squidpass user
输入2次密码:你的密码
chown squid:squid /etc/squid/squidpass

3、编辑 squid.conf 配置
注意需要有认证配置项,下面为已验证可行配置范例:

#代理服务监听端口,客户端通过此端口连接代理
http_port 3128

#代理服务器标识名称,响应头/日志中展示主机名
visible_hostname squid

#squid异常崩溃时core dump内核转储文件存放目录
coredump_dir /var/spool/squid

#缓存生命周期规则 refresh_pattern 格式:匹配正则 最小缓存时长(分钟) 占比 最大缓存时长(分钟)
#FTP协议资源:最少缓存1440分钟(1天),资源过期20%时刷新,最长缓存10080分钟(7天)
refresh_pattern ^ftp: 1440 20% 10080

#Gopher协议资源:最少缓存1天,无比例刷新,最长缓存1天
refresh_pattern ^gopher: 1440 0% 1440

#-i忽略大小写,匹配cgi-bin或带?动态接口:不缓存(0/0%/0),实时回源,禁止缓存动态接口
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0

#其余所有普通网页资源:无最小缓存,过期20%自动刷新,最长缓存4320分钟(3天)
refresh_pattern . 0 20% 4320

# Basic账号密码认证配置
#调用ncsa密码认证程序,密码文件路径/etc/squid/passwd
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd

#客户端弹窗提示文案,浏览器弹出认证框时显示
auth_param basic realm “请输入代理账号密码”

#ACL访问控制:要求代理请求必须完成账号密码认证
acl passuser proxy_auth REQUIRED

#放行通过账号密码认证的用户
http_access allow passuser

#拒绝所有未通过认证的访问请求
http_access deny all

4、检验配置+启动服务
#语法校验
/usr/local/squid/sbin/squid -k parse
#启动
systemctl start squid
#查看监听
ss -tulnp|grep squid

5、VPS本地测试代理
curl -x http://user:你的密码@127.0.0.1:3128 http://baidu.com
curl -x http://user:你的密码@127.0.0.1:3128 https://baidu.com

二、VPS服务端Frps与Frpc部署和配置


1、Frp环境准备与二进制安装包下载(frp 最新 0.69.0
#防火墙放行端口
firewall-cmd –add-port=7000/tcp –permanent #监听端口
firewall-cmd –add-port=3128/tcp –permanent #数据交换端口(squid已放通的则这里不用再执行)
firewall-cmd –reload
#新建Frp工作目录
mkdir -p /usr/local/frp && cd /usr/local/frp
#下载linux amd64版本frp
wget https://github.com/fatedier/frp/releases/download/v0.69.0/frp_0.59.0_linux_amd64.tar.gz
tar zxvf frp_0.69.0_linux_amd64.tar.gz –strip-components=1
#删除压缩包
rm -f frp_0.69.0_linux_amd64.tar.gz

2、配置Frps服务配置文件:frps.toml
#SSH执行下面语句直接再当前目录生成frps.toml文件:
cat > /usr/local/frp/frps.toml <<EOF
bindPort = 7000
#token规范写法(低版本必须auth.method=”token”)
auth.method = “token”
auth.token = “Abc12345678”
#Web面板
webServer.addr = “0.0.0.0”
webServer.port = 7500
webServer.user = “admin”
webServer.password = “admin123”
#端口放行格式正确
allowPorts = [{start = 1, end = 65535}]
#心跳在transport分组内
[transport]
heartbeatTimeout = 90
EOF


3、注册systemd服务(路径: /usr/local/frp)
#SSH执行下面语句直接再当前目录生成frps.service文件:
cat > /etc/systemd/system/frps.service <<EOF
[Unit]
Description=frp server
After=network.target

[Service]
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.toml
Restart=always
RestartSec=5

[Install]
Wanted=multi-user.target
EOF

4、配置Frp服务器侧的Frpc客户端连接用户侧客户端
#(实现xtcp/stcp安全隧道搭建过GFW,可参考下面配置)
serverAddr = “127.0.0.1”
serverPort = 7000
auth.token = “Abc2345678”

#主通道:XTCP + STCP 备用
[[proxies]]
name = “squid-xtcp”
type = “xtcp”
secretKey = “123456abc”
localIP = “127.0.0.1”
localPort = 3128

[[proxies]]
name = “squid-stcp”
type = “stcp”
secretKey = “123456abc”
localIP = “127.0.0.1”
localPort = 3128

#移动端:XTCP + STCP 备用
[[proxies]]
name = “xtcp-mobile”
type = “xtcp”
secretKey = “123456abc”
localIP = “127.0.0.1”
localPort = 3129

[[proxies]]
name = “stcp-mobile”
type = “stcp”
secretKey = “123456abc”
localIP = “127.0.0.1”
localPort = 3129

5、接下来需要创建开机启动服务脚本
sudo vim /etc/systemd/system/frpc.service

#将以下内容复制到文件中。
#这里配置失败自动重启(Restart=on-failure)以及重启间隔时间(RestartSec=5s):

[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
#当进程异常退出(退出码不为0)时,自动重启服务
Restart=on-failure
#重启前等待 5 秒
RestartSec=5s
#您指定的实际启动命令
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.toml
[Install]
WantedBy=multi-user.target

6、启动Frp服务并设置为开机自启动
systemctl daemon-reload
systemctl enable frps
systemctl start frps
systemctl status frps
systemctl enable frpc
systemctl start frpc

#查看运行状态,确认成功
systemctl status frps
systemctl status frpc

#常用命令
#启动:systemctl start frpc
#停止:systemctl stop frpc
#重启:systemctl restart frpc
#查看日志:journalctl -u frpc -f



三、windows终端侧Frpc客户端安装与配置

1、Frpc下载原装
#下载:frp_0.69.1_windows_amd64.zip
https://github.com/fatedier/frp/releases/download/v0.69.1/frp_0.69.1_windows_amd64.zip
解压到路径:D:\frp\
目录内只需要文件:frpc.exe、frpc.toml


2、Frpc客户端实现访问者角色xtcp打洞失败则自动切换stcp连接,同时建立3389的远程桌面受访者配置
参考配置如下:
serverAddr = “服务器IP” # 请替换为真实的服务器公网IP
serverPort = 7000
auth.token = “Abc123456”

#PC端代理:XTCP + STCP 自动回退[[visitors]]
name = “stcp-squid-fallback”
type = “stcp”
serverName = “squid-stcp”
secretKey = “123456abc”
bindPort = -1 # 仅作为回退通道,不占用本地物理端口
[[visitors]]
name = “squid-xtcp-visitor”
type = “xtcp”
serverName = “squid-xtcp”
secretKey = “123456abc”
bindAddr = “127.0.0.1”
bindPort = 8888 # PC端浏览器代理统一指向此端口,可指定其它空闲端口
fallbackTo = “stcp-squid-fallback”
fallbackTimeoutMs = 500 # 500ms 未打洞成功则自动回退到 STCP

#本机被访者:3389 远程桌面
[[proxies]]
name = “remote-desktop”
type = “tcp”
localIP = “127.0.0.1”
localPort = 3389
remotePort = 13389 # 公网服务器暴露的端口,可指定其它空闲端口

3、临时运行测试(CMD)
D:
cd D:\frp
frpc.exe -c frpc.toml
输出 login to server success、start proxy success 即连通;关闭 CMD 程序终止。

4、安装为系统服务(开机后台自启,管理员 CMD)
cd D:\Jed\frp
frpc.exe install -c frpc.toml

#启停管理命令
net start frpc
net stop frpc

#卸载服务
frpc.exe uninstall

5、验证端口
netstat -ano | findstr 8888
出现监听即正常,火狐代理:127.0.0.1:8888,取消 HTTPS 代理勾选。

6、添加全隧道TLS加密(服务器侧frp需同步开启配置项)
#frps.toml添加项:
tls.enable = true

#frpc.toml添加项
tls.enable = true

改完重启两端服务










Our Services

Worpress

Lorem ipsum dolor amet consectetur adipiscing elit. Nunc mi dui placerat eu faucibus vel, efficitur quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada.

Read More

Web Design

Lorem ipsum dolor amet consectetur adipiscing elit. Nunc mi dui placerat eu faucibus vel, efficitur quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada.

Read More

Ecommerce

Lorem ipsum dolor amet consectetur adipiscing elit. Nunc mi dui placerat eu faucibus vel, efficitur quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada.

Brand Now

SEO

Lorem ipsum dolor amet consectetur adipiscing elit. Nunc mi dui placerat eu faucibus vel, efficitur quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada.

Read More

Our Team

zahera

Zahera

(HR)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel tempor sem. Vestibulum suscipit faucibus sem ut porta. Integer ut justo euismod, auctor turpis et

Alex

Alex

(CEO)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel tempor sem. Vestibulum suscipit faucibus sem ut porta. Integer ut justo euismod, auctor turpis et

Alex

Sara

(CCO)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel tempor sem. Vestibulum suscipit faucibus sem ut porta. Integer ut justo euismod, auctor turpis et

Mark

Mark

(Manager)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel tempor sem. Vestibulum suscipit faucibus sem ut porta. Integer ut justo euismod, auctor turpis et

Testimonials

  • Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit,
    Safira
    (Quia, CEO)
  • At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga.
    Alana
    (Wirate, PA)
  • Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
    Sara
    (Yahoo, Manager)

Our Partners