找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 10022|回复: 19

[虚拟机相关] ALL-IN-ONE 之 PVE 虚拟机 iKuai + LXC clash 透明代理服务器安装与配置教程

[复制链接]
发表于 2023-8-8 16:05 | 显示全部楼层 |阅读模式
本帖最后由 charlzyx 于 2023-8-8 23:29 编辑

因为我软路由需求只有学英语, 所以没有采用常规的 iKuai + Op 主从路由配置, 而是使用了理论上讲更加绿色节能的 LXC 搭建了一个 clash 透明代理来处理.
机器配置如下:


因为不太会写 iptables 所以特别感谢以下开源项目!
- tpclash TPClash 可以自动安装 Clash Premium/Meta, 并自动配置基于 Tun 的透明代理.
- clash-for-linux Linux 端使用 Clash 作为代理工具

0# 虚拟机架构 & 路由规划
  • 宿主机: PVE 119.119.119.120/24






    • docker
    • 虚拟机: iKuai 119.119.119.119 (作为网关)
    • LXC <CT>: Debain 11 119.119.119.123/24 (使用 clash 作为透明代理服务器)


1# PVE 安装
这个有很多现成的教程, 我贴几个参考吧


2# PVE 安装之后设置
2.1. 安装之后, 更新 apt 和 pve 源

  1. # 替换清华源, 注意一下 Debain 版本
  2. # apt 源 https://mirrors.tuna.tsinghua.edu.cn/help/debian/
  3. vim /etc/apt/sources.list
  4. # pve 源 https://mirrors.tuna.tsinghua.edu.cn/help/proxmox/
  5. vim /etc/apt/sources.list.d/pve-no-subscription.list
  6. apt update
复制代码
2.2. 安装 docker
用处多多, 我直接装宿主机了
  1. # 官方教程 https://docs.docker.com/engine/install/debian/
  2. # 1. Update the apt package index and install packages to allow apt to use a repository over HTTPS:
  3. apt-get install ca-certificates curl gnupg
  4. # 2. Add Docker’s official GPG key:
  5. sudo install -m 0755 -d /etc/apt/keyrings
  6. curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  7. sudo chmod a+r /etc/apt/keyrings/docker.gpg
  8. # 3. Use the following command to set up the repository:
  9. echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  10.   "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  11.   sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

  12. # 4. Update the apt package index:
  13. sudo apt-get update
  14. # 5.To install the latest version, run:
  15. sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  16. # 6. Verify that the Docker Engine installation is successful by running the hello-world image:
  17. sudo docker run hello-world

  18. # docker 镜像加速 https://dockerproxy.com/docs
  19. # https://www.ioiox.com/archives/127.html

  20. # 写入配置
  21. echo "{ "registry-mirrors": [ "https://dockerproxy.com" ] }" >> /etc/docker/daemon.json
  22. # 配置完成需重载 daemon 并重启 docker
  23. sudo systemctl daemon-reload
  24. sudo systemctl restart docker
复制代码
3# iKuai
爱快路由系统下载 优质的教程也很多, 善用搜索

4# LXC <CT> 容器安装 Debain 11


Tips: 清华源支持 CT Templates 加速
具体方法:将 /usr/share/perl5/PVE/APLInfo.pm 文件中默认的源地址 http://download.proxmox.com 替换为 `https://mirrors.tuna.tsinghua.edu.cn/proxmox`
可以使用如下命令修改:
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_backsed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
针对 /usr/share/perl5/PVE/APLInfo.pm 文件的修改,重启后生效。
1. 根据图示步骤点击下载对应 CT 模版

当然也可以使用 从URL下载 比如 Debain 11 使用清华源加速的地址是这样
https://mirrors.tuna.tsinghua.edu.cn/proxmox/images/system/debian-11-standard_11.7-1_amd64.tar.zst

2.  创建 LXC Debain 11
一定要去掉 无特权容器 的选择框, 因为下一步要使用的 clash 透明代理需要使用到 TUN 隧道转发, 需要提权


2.2. 选择刚才下载好的模版


2.3 磁盘给个 2G 足够了, 注意 PVE 8.0 版本磁盘在 UI 界面只能调大不能减少, 减少需要命令行还有风险, 所以考虑好大小


2.4 CPU 就看心情

2.5. 内存看心情, 这个后期可以随便调整, 可以先填大一点, 配置操作快一点


2.6.  防火墙记得去掉, IPv4 填写上面规划的 ip, 网关填写 iKuai ip, IPv6 跳过不理


2.7.  DNS 默认值 -> 下一步 -> 完成


3.  配置 LXC Debain 系统3.1. 登录: 用户名 root, 密码就是刚才创建的时候填写的密码



3.2 第一步依然是更新 apt 源, 注意界面上的 Debain 版本要对应上https://mirrors.tuna.tsinghua.edu.cn/help/debian/3.3. 接下来的配置可以使用我这里的脚本 https://github.com/charlzyx/clash-for-linux.git 可以参考原始仓库操作, 也可以按照我的修改脚本来执行;  
  • 你应该需要安装一下 git 和 curl apt install git curl
  • clash-for-linux 下载airport订阅文件, 并转换成 clash 对应格式
  • tpclash 一键创建 clash 透明代理
3.4.  创建工作目录 /etc/clash, 准备配置文件 /etc/clash.yaml (手动 or 自动)





3.5 安装 tpclash 可以直接参考 [color=var(--yq-ant-link-color)]https://github.com/mritd/tpclash 官方文档, 我的操作步骤如下
  1.    # 下载二进制文件, 注意平台要对应
  2.    wget https://github.com/mritd/tpclash/releases/download/v0.1.11/tpclash-premium-linux-amd64
  3.    # 重命名, 非必须
  4.    mv tpclash-premium-linux-amd64 tpclash
  5.    # 添加可执行权限
  6.    chmod ./tpclash
  7.    # 执行安装
  8.    ./tpclash install
复制代码

3.5 根据TPClash 文档的提示; 修改 /etc/systemd/resolve.conf, 添加下面 4 行进去
  1. #先别忘了端口转发
复制代码
  1.     # /etc/systemd/resolve.conf
  2.     DNS=223.5.5.5
  3.     DNS=119.29.29.29
  4.     Domains=~.
  5.     DNSStubListener=no
复制代码


之后 systemctl restart systemd-resolved
如果有看到 systemd-resolved.service: Main process exited, code=exited, status=226/NAMESPACE systemd-resolved.service: Failed with result 'exit-code'. 类似这样的报错,
请检查容器的 嵌套 功能是否开启


3.7. 第一次启动直接使用 tpclash 手动启动
修改 /etc/clash.yaml 配置文件中的日志级别设置为 debug 来观察是否有报错



比方说这样就 TUN 隧道 开启失败
针对这个具体的问题, 可以这样: 打开宿主机 PVE 的控制台, 执行以下命令手动给 lxc 开启 tun, 修改之后重启当前容器
  1. cd /etc/pve/lxc && ls
  2. vim xxx.conf # xxx 为容器 id
  3. 在末尾添加如下配置
  4. lxc.cgroup.devices.allow: c 10:200 rwm
  5. lxc.cgroup2.devices.allow: c 10:200 rwm
  6. lxc.mount.entry: /dev/net dev/net none bind,create=dir
复制代码

重启之后 检查刚才报错的 /ev/net/tun 是否存在


3.8.  排除所有错误之后, 就可以安装 TPClash 成功提示操作 1. 开启自启动 2. 启动服务
  1. ? TPClash 安装完成, 您可以使用以下命令启动:
  2. - 启动服务: systemctl start tpclash
  3. - 停止服务: systemctl stop tpclash
  4. - 重启服务: systemctl restart tpclash
  5. - 开启自启动: systemctl enable tpclash
  6. - 关闭自启动: systemctl disable tpclash
  7. - 查看日志: journalctl -fu tpclash
  8. - 重载服务配置: systemctl daemon-reload
复制代码







验证一下 curl www.不存在的域名.com


3.9 验证, 参考 TPClash 官网
我们可以创建一个新的 CT 容器来验证是否可用

其他所有选项都可以用默认值, 只有在 ip 这里, 把网关配置为刚才透明代理 ip, 之后进入当前测试容器控制台 curl www.
不存在.com 即可验证
恭喜 ?! 至此, 透明 clash 代理 CT 容器配置完毕!
iKuai 配置, 网关指向clash 代理服务器即可

clash yacd 示意

第一次写教程, 欢迎讨论


顺便问一下最下面那个附件图是我传错了, 怎么删除

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 1恩山币 +2 收起 理由
sires + 2 你好,久仰卧龙大名,在下凤雏!.

查看全部评分

只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2024-9-14 10:22 | 显示全部楼层
MARK一下,研究LXC基本使用方法。
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-4-26 15:14 | 显示全部楼层
学习一下
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-1-15 08:41 | 显示全部楼层
造假派五号 发表于 2024-1-13 23:00
大佬 你的东西太实用了,也看了你博客所有折腾内容 https://charlzyx.github.io/boom/0x01start.html 我PVE ...

安装了ntables或iptables(楼主用的alpine容器装的shellclash就用的ntables),然后sheelclash就会出现Nft混合模式支持tcp和udp的tun转发了
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-1-13 23:00 | 显示全部楼层
大佬 你的东西太实用了,也看了你博客所有折腾内容 https://charlzyx.github.io/boom/0x01start.html 我PVE里折腾的基本和你一样,这里我有几个问题请教你 我shellclash是lxc的debian折腾了,也用了alpine安装shellclash,因为shellclash用起来方便很多,但是我有时候玩游戏,想用shellclash的TUN模式,因为shellclash是为有路由开发的,我这里的虚拟机或者lxc的安装shellclash开启TUN后都没有外网流量进入shellclash里,大概就是shellclash开启TUN模式后,可以正常访问国内网站,上网海淘网站就打不开,请问大佬知道原因吗?另外请教一下shellclash在PVE的LXC、alpine里面如何开启TUN模式,我主机已经给了lxc.cgroup.devices.allow: c 10:200 rwm
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net dev/net none bind,create=dir  这三条开启TUN模拟的命令了,但是shellclash还是没有tun模式选项,还请大佬解惑一下,谢谢!!! 另外我PVE LXC里面安装TPclash TUN模式就正常使用,但是现在TPclash删库了,哎

点评

安装了ntables或iptables(楼主用的alpine容器装的shellclash就用的ntables),然后sheelclash就会出现Nft混合模式支持tcp和udp的tun转发了  详情 回复 发表于 2024-1-15 08:41
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-12-12 13:30 | 显示全部楼层
哥们儿,119.119.119.119属于公网ip哦
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-12-12 08:51 | 显示全部楼层
兄弟你好,还在吗?我最近在愁clash做透明网关的事,好不容易搜到这篇文章,但文章中给的TPclash已经下架了,搜也搜不到,方便发一份给我吗,多谢!
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-12-11 16:38 | 显示全部楼层
作者还在吗?现在clsh删库了。你这个方法是不是不行了
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-12-10 01:27 | 显示全部楼层
支持一下,共同进步
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-11-30 18:41 | 显示全部楼层
插眼支持⬆️
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-11-30 17:10 | 显示全部楼层
支持一下啊
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-9 10:59 | 显示全部楼层
技术贴没人支持?
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-8-11 11:39 | 显示全部楼层
好东西,留笔收藏,谢谢大佬分享
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-8-10 22:04 | 显示全部楼层
感谢分享!!!
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-8-10 21:19 | 显示全部楼层
charlzyx 发表于 2023-8-10 21:03
确实, 主要还是看自己需求, 适合是自己就行

不过我还是存了一下你的新模式,怕万一想学找不到了!
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-9-20 16:58

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表