当前位置: 首页 > news >正文

ubuntu 用ss-TPROXY实现透明代理,基于TPROXY的透明TCP/UDP代理,在 Linux 2.6.28 后进入官方内核。

TPROXY 是一个 Linux 内核模块,在 Linux 2.6.28 后进入官方内核。

1 安装 tproxy 相关依赖

参考ss-tproxy 的安装依赖。

  • bash

ss-tproxy 使用了 bash 的一些语法特性,比如 shell 数组,因此必须用 bash 解释器执行。大多数发行版已经自带了 bash;如果没有,请先安装一个 bash,比如那些基于 busybox 的系统。如果可以通过包管理器安装 bash,那最好;如果不行,可以看看上面两个链接,取出里面的 bash 二进制文件。

    https://github.com/robxu9/bash-statichttps://packages.debian.org/sid/bash-static
  • curl

请检查 curl 是否支持 HTTPS 协议,使用 curl --version 可查看(Protocols)

apt -y install curl
  • ipset
apt -y install ipset
  • TPROXY

TPROXY 是一个 Linux 内核模块,在 Linux 2.6.28 后进入官方内核。一般正常的发行版都没有裁剪 TPROXY 模块,TPROXY 模块缺失问题主要出现在无线路由固件上(某些精简型发行版也会去掉 TPROXY 模块,比如 Alpine)。使用以下方法可以检测当前内核是否包含 TPROXY 模块。

# 查找 TPROXY 模块
find /lib/modules/$(uname -r) -type f -name 'xt_TPROXY.ko*'# 正常情况下的输出
/lib/modules/4.16.8-1-ARCH/kernel/net/netfilter/xt_TPROXY.ko.xz# 尝试手动加载模块
modprobe xt_TPROXY
  • iproute2

大部分发行版都自带了 iproute2,可以运行一下 ip addr 命令,如果成功打印了网络接口的 ip,那就是已安装。

apt -y install iproute2
  • dnsmasq
apt -y install dnsmasq
  • chinadns-ng

chinadns-ng 是用 C 语言编写的另一个 chinadns,修复若干问题,优化了性能。

可以直接在 releases 页面下载编译好的二进制文件。然后复制到/usr/local/bin,参考命令 cp -af xxx /usr/local/bin/xxx
https://github.com/zfl9/chinadns-ng
  • dns2tcp

dns2tcp 是用 C 语言写的小工具,专做 dns udp2tcp 转换。

可以直接在 releases 页面下载编译好的二进制文件。然后复制到/usr/local/bin,参考命令 cp -af xxx /usr/local/bin/xxxhttps://github.com/zfl9/dns2tcp
  • ipt2socks

ipt2socks 是用 C 语言写的小工具,专做 iptables-to-socks5 转换。

可以直接在 releases 页面下载编译好的二进制文件。然后复制到/usr/local/bin,参考命令 cp -af ipt2socks /usr/local/bin/ipt2socks
https://github.com/zfl9/ipt2socks

用systemd运行Trojan服务trojan.service
/etc/systemd/system/trojan.service

[Unit]
Description=trojan-service[Service]
ExecStart=/usr/bin/trojan /etc/trojan/config.json
Restart=on-failure
RestartSec=60
SyslogIdentifier=trojan-service
User=root[Install]
WantedBy=multi-user.target

2 配置SOCKS5 服务

可以采用一些工具,如果你有云服务器,可以在云服务部署SOCKS5,通过云服务器达到保护隐私的目的。例如采用这个软件:
https://p4gefau1t.github.io/trojan-go,更详细,我就不说了,免得文章被屏蔽

3 用ss-TPROXY

   普通代理:client 实现的是 http、socks5 传入协议。透明代理:client 实现的是 透明代理 传入协议。

如果 client 端只支持 socks5 传入,不支持透明代理传入,还能实现透明代理吗?当然可以,我们可以运行 ipt2socks,实现TCP 支持 TPROXY/REDIRECT 传入,UDP 支持 TPROXY 传入。ipt2socks 是【https://github.com/zfl9】编写的一个简单 C 程序

搭配 TPROXY:支持 TCP 和 UDP 协议的透明代理。

我采用了工具ss-tproxy,

获取
git clone https://github.com/zfl9/ss-tproxy
cd ss-tproxy
chmod +x ss-tproxy安装
cp -af ss-tproxy /usr/local/bin
mkdir -p /etc/ss-tproxy
cp -af *.conf *.txt *.ext /etc/ss-tproxy
cp -af ss-tproxy.service /etc/systemd/system # 可选,安装 service 文件卸载
# 停止脚本 (v4.7版本开始)
ss-tproxy stop
ss-tproxy flush-stoprule
# 删除文件
rm -fr /usr/local/bin/ss-tproxy # 删除脚本
rm -fr /etc/ss-tproxy # 删除配置(做好备份)
rm -fr /etc/systemd/system/ss-tproxy.service # service文件脚本开机自启
将 ss-tproxy.service 文件放到 /etc/systemd/system/ss-tproxy.service,执行:
systemctl daemon-reload
systemctl enable ss-tproxy

配置文件

首先是 第二节的 2 配置SOCKS5 服务 ,更详细,我就不说了,免得文章被屏蔽
其次 ss-TPROXY 的配置,参考 https://github.com/zfl9/ss-tproxy 的代理软件配置,说实话,难度比较大,需要具备看懂shell脚本的能力。

我备份一下我的配置在 https://gitee.com/hiyanyx/study-transparent-proxy-v1-bash 。其实整体的难度偏大!初学者就不要看了。

异常情况1:内网主机无法访问白名单

ss-tproxy 主机上都正常,但其他主机上,黑名单正常,白名单不正常(如百度无法访问)。请将 ipts_set_snat(IPv4)、ipts_set_snat6(IPv6)设为 true。并检查 ss-tproxy 主机的 iptables 规则,有些系统会将 FORWARD 链的默认策略设为 DROP,如果有这种情况,请进行合理的调整,如果不知道怎么设置,可以参照下面的步骤,配置 pre_start 钩子函数。

代理异常时,应留意系统是否预设了某些 iptables 规则、是否与 ss-tproxy 冲突

比如,你可以通过 pre_start 钩子函数,在 start 之前,将已有的 iptables 规则清空,并将默认策略设为 ACCEPT。编辑 ss-tproxy.conf,添加如下内容(这些命令会在 ss-tproxy start 之前执行):

reset_ipt() {local table_chains=(raw 'PREROUTING OUTPUT'mangle 'PREROUTING INPUT FORWARD OUTPUT POSTROUTING'nat 'PREROUTING INPUT OUTPUT POSTROUTING'filter 'INPUT FORWARD OUTPUT')for ((i = 0; i < ${#table_chains[@]}; i += 2)); dolocal table="${table_chains[i]}"local chains="${table_chains[i + 1]}"$1 -t $table -F$1 -t $table -Xfor chain in $chains; do$1 -t $table -P $chain ACCEPTdonedone
}pre_start() {is_true "$ipv4" && reset_ipt iptablesis_true "$ipv6" && reset_ipt ip6tables
}

资源

https://gitee.com/hiyanyx/study-transparent-proxy-v1-bash

相关文章:

ubuntu 用ss-TPROXY实现透明代理,基于TPROXY的透明TCP/UDP代理,在 Linux 2.6.28 后进入官方内核。

TPROXY 是一个 Linux 内核模块&#xff0c;在 Linux 2.6.28 后进入官方内核。 1 安装 tproxy 相关依赖 参考ss-tproxy 的安装依赖。 bash ss-tproxy 使用了 bash 的一些语法特性&#xff0c;比如 shell 数组&#xff0c;因此必须用 bash 解释器执行。大多数发行版已经自带了…...

报错解决:opene3d draw_geometries(): incompatible function arguments.

1. 报错信息 o3d.visualization.draw_geometries(target_pcd) TypeError: draw_geometries(): incompatible function arguments. The following argument types are supported:1. (geometry_list: List[open3d.cpu.pybind.geometry.Geometry], window_name: str Open3D, wid…...

Clickhouse笔记(二) 集群搭建

0.集群规划 操作系统使用ubuntu2204server&#xff0c;8C8G100G。 节点分片部署192.168.50.5分片1副本1clickhouse-server/clickhouse-client/keeper192.168.50.6分片1副本2clickhouse-server/clickhouse-client/keeper192.168.60.7分片2副本1clickhouse-server/clickhouse-c…...

华为云购买弹性云服务器(教程)

配置弹性云服务器 基础配置 实例 操作系统...

Python异常检测- 单类支持向量机(One-Class SVM)

系列文章目录 Python异常检测- Isolation Forest&#xff08;孤立森林&#xff09; python异常检测 - 随机离群选择Stochastic Outlier Selection (SOS) python异常检测-局部异常因子&#xff08;LOF&#xff09;算法 Python异常检测- DBSCAN 文章目录 系列文章目录前言一、On…...

基于SpringBoot+Vue+uniapp微信小程序的婚庆摄影小程序的详细设计和实现(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…...

NGAC访问控制系列三:低代码产品NGAC运用与算法运用

目录 一、基于NGAC的低代码模型权限管理方案 二、多策略访问控制系统限制内部访问的线性时间算法 1、概述 2、权限控制图遍历算法 一、基于NGAC的低代码模型权限管理方案 NGAC在低代码平台的权限决策模型&#xff1a;功能权限数据权限 案例&#xff1a;对于七巧低代码开发平台&…...

Unity3D 面试题收录

Unity3D 客户端面试题收录&#xff08;持续更新~&#xff09; 面试题收录 本文收录一些对于 Unity3D 客户端可能遇到的面试题&#xff08;持续更新~&#xff09;&#xff0c;答案仅出于个人理解&#xff0c;如有偏差&#xff0c;希望指正。 Unity3D MonoBehaviour 生命周期…...

Jrebel热部署不生效解决

打开setting找到build底下的complier勾选 build project automatically 设置自动构建项目 打开setting找到Advanced Setting勾选Complier中的第一项 Jrebel panel中勾选需要热部署的项目模块 项目配置信息&#xff1a;Edit Configuration中进行编辑&#xff0c;配置如下图…...

软件测试学习笔记丨Selenium键盘鼠标事件ActionChains

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/22515 本文为霍格沃兹测试开发学社的学习经历分享&#xff0c;写出来分享给大家&#xff0c;希望有志同道合的小伙伴可以一起交流技术&#xff0c;一起进步~ 说明&#xff1a;本篇博客基于sel…...

CI/CD(持续集成与持续交付)流水线

集成 Jenkins、GitLab Webhook、Nexus 和 RabbitMQ 可以形成一个全面的 CI/CD&#xff08;持续集成与持续交付&#xff09;流水线&#xff0c;结合消息队列可以创建事件驱动的工作流。以下是配置这四个工具以实现一个基本的 CI/CD 流程的详细步骤。 前置条件 Jenkins、GitLab、…...

分布式光伏发电有什么优劣势

分布式光伏发电是指在离电力消费地点较近的地方&#xff0c;通过安装光伏发电系统来发电。这种系统通常用于屋顶、地面或其他建筑物上&#xff0c;相比于集中式光伏发电系统&#xff0c;它有一些独特的优势和劣势&#xff1a; 优势&#xff1a; 地理适应性&#xff1a; 分布式…...

Spring Boot框架中的IO

1. 文件资源的访问与管理 在 Spring Boot 中&#xff0c;资源文件的访问与管理是常见的操作需求&#xff0c;比如加载配置文件、读取静态文件或从外部文件系统读取文件。Spring 提供了多种方式来处理资源文件访问&#xff0c;包括通过 ResourceLoader、Value 注解以及 Applica…...

DBeaver连接Hive教程

hive shell&#xff1a;通过hive shell来操作hive&#xff0c;但是至多只能存在一个hive shell&#xff0c;启动第二个会被阻塞&#xff0c;也就是说hive shell不支持并发操作。 基于JDBC等协议&#xff1a;启动hiveserver2&#xff0c;通过jdbc协议可以访问hive&#xff0c;hi…...

Vue-Router源码实现详解

1.Hash模式 hash就是url中#后面的部分hash改变时&#xff0c;页面不会从新加载&#xff0c;会触发hashchange事件&#xff0c;去监听hash改变&#xff0c;而且也会被记录到浏览器历史记录中vue-router的hash模式&#xff0c;主要是通过hashchange事件&#xff0c;根据hash值找…...

程序员节日的日期是10月24日‌程序员日

‌程序员节日的日期是10月24日。‌ 这一天被称为‌中国程序员日或‌1024程序员节&#xff0c;由‌博客园、‌CSDN等自发组织设立&#xff0c;旨在纪念程序员对科技世界的贡献。 程序员节日的由来和意义 1024程序员节的由来可以追溯到2010年&#xff0c;最初由网友提出设立一个…...

联邦学习中的数据异构性

在联邦学习&#xff08;Federated Learning, FL&#xff09;领域中&#xff0c; 异构数据&#xff08;Heterogeneous Data&#xff09; 是指不同客户端所持有的本地数据在特征分布、类别分布、数量等方面存在差异的数据。这种数据的异质性是联邦学习面临的一大挑战&#xff0c;…...

Python小程序 - 替换文件内容

1. 写入文件c:\a.txt 1&#xff09;共写入10行 2&#xff09;每行内容 0123456789 # 1 ls 0123456789 ln 10 with open("c:/a.txt", w,encodingUTF-8) as f:for i in range(ln):f.write(ls\n)######################################### 2 ln 10…...

k8s备份恢复(velero)

velero简介 velero官网&#xff1a; https://velero.io/ velero-github&#xff1a; https://github.com/vmware-tanzu/velero velero的特性 备份可以按集群资源的子集&#xff0c;按命名空间、资源类型标签选择器进行过滤&#xff0c;从而为备份和恢复的内容提供高度的灵活…...

LED户外屏:面对复杂环境的七大挑战

户外LED显示屏作为现代城市广告和信息传播的重要媒介&#xff0c;其应用范围越来越广泛。然而&#xff0c;与室内环境相比&#xff0c;户外环境的复杂多变对LED显示屏提出了更高的要求。本文将探讨户外LED显示屏在设计和应用过程中必须考虑的七个关键问题。 1. 高分辨率 户外LE…...

LabVIEW自动化流动返混实验系统

随着工业自动化的不断发展&#xff0c;连续流动反应器在化工、医药等领域中的应用日益广泛。传统的流动返混实验操作复杂&#xff0c;数据记录和处理不便&#xff0c;基于LabVIEW的全自动流动返混实验系统能自动测定多釜反应器、单釜反应器和管式反应器的停留时间分布&#xff…...

【性能优化】安卓性能优化之CPU优化

【性能优化】安卓性能优化之CPU优化 CPU优化及常用工具原理与文章参考常用ADB常用原理、监控手段原理监控手段多线程并发解决耗时UI相关 常见场景排查CPU占用过高常用系统/开源分析工具AndroidStudio ProfilerSystraceBtracePerfettoTraceView和 Profile ANR相关ANR原理及常见场…...

springboot二手图书交易系统-计算机设计毕业源码88413

目 录 摘要 1 绪论 1.1研究背景 1.2研究意义 1.3论文结构与章节安排 2 二手图书交易系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 二手…...

解决ElasticSearch启动成功却无法在浏览器访问问题

目录 前言&#xff1a; 问题复现 &#xff1a; 解决问题&#xff1a; 1、修改sysctl.conf文件 2、在sysctl.conf文件增加这段东西 3、 然后保存退出&#xff0c;输入以下命令使其生效 结语&#xff1a; 前言&#xff1a; 这篇文章是小白我今天突然启动es&#xff0c;发现e…...

稀土有色包芯线良好的导电性

稀土有色包芯线是一种结合了稀土元素和有色金属(如铜、铝、镁等)的特殊线材。以下是对稀土有色包芯线的详细介绍&#xff1a; 一、组成与结构 芯线&#xff1a;由稀土元素和有色金属组成的合金制成。稀土元素(如镧、铈、镁等)的添加量在一定范围内&#xff0c;以确保合金性能的…...

SIP 业务举例之 Call Forwarding Unconditional(无条件呼转)

目录 1. Call Forwarding Unconditional 简介 2. RFC5359 的 Call Forwarding Unconditional 信令流程 PS:Dialog 建立条件 Dialog 会话完全建立 3. Call Forwarding Unconditional 过程总结 博主wx:yuanlai45_csdn 博主qq:2777137742 想要 深入学习 5GC IMS 等通信知识…...

基于stm32的esp8266的WIFI控制风扇实验

实验案例&#xff37;&#xff29;&#xff26;&#xff29;控制风扇 项目需求 电脑通过esp8266模块远程遥控风扇。 项目框图 ​ 风扇模块封装 #include "sys.h" #include "fan.h"void fan_init(void) {GPIO_InitTypeDef gpio_initstruct;//打开时钟…...

java中的ScheduledExecutorService介绍和使用案例

ScheduledExecutorService 是 Java 并发包 java.util.concurrent 中的一个接口&#xff0c;它提供了一种机制&#xff0c;允许我们安排一个任务在给定的延迟后运行&#xff0c;或者定期地执行。 主要特点 单次调度&#xff1a;可以安排任务在一定的延迟后执行一次。周期性调度…...

4天涨粉14万!这个AI小众赛道粉丝涨疯了吧?保姆级教程免费教会你!

测一下你的搞钱灵敏度有多高&#xff0c;看下面两张截图&#xff0c;有没有发现什么异常值&#xff1f; 发现了吧&#xff1f; 第一张是10月17号截的&#xff0c;第二张是21号&#xff0c;4天时间粉丝从2.8万飙到16.6万&#xff0c;涨粉14万&#xff01; 这个号我几天之前就发…...

RK3588 技术分享 | 在Android系统中使用NPU实现Yolov5分类检测

随着人工智能和大数据时代的到来&#xff0c;传统嵌入式处理器中的CPU和GPU逐渐无法满足日益增长的深度学习需求。为了应对这一挑战&#xff0c;在一些高端处理器中&#xff0c;NPU&#xff08;神经网络处理单元&#xff09;也被集成到了处理器里。NPU的出现不仅减轻了CPU和GPU…...

网站图片优化怎么做/谷歌怎么推广自己的网站

工业机器人通常使用以下编程语言&#xff1a; 工控语言&#xff0c;例如&#xff1a;PLC(可编程控制器语言)计算机语言&#xff0c;例如&#xff1a;C、Python、Java机器人控制语言&#xff0c;例如&#xff1a;Robot Operating System (ROS) 不同的机器人系统和应用可能需要使…...

海口网站建设费用/福州seo公司

(250条消息) hive计算map数和reduce数_一只刚刚上路的猿-CSDN博客 hive优化之——控制hive任务中的map数和reduce数 – lxw的大数据田地 (lxw1234.com) &#xff08;偏向于控制map和reduce的个数&#xff0c;比较老的文章&#xff0c;但是还是有参考价值&#xff09;...

网站建设费用报价单/长尾关键词网站

每天记录学习&#xff0c;每天会有好心情。*^_^*今天将为大家分析一个机房上机安排管理系统(设计一个运行在学校局域网环境之下的机房管理系统并予以实现.该系统采用了目前流行的客户机/服务器模式,结合了先进的WinSock通信方法和功能强大的ADO数据库访问技术.实践证明:本系统设…...

品牌网站设计公司哪家好/seo的流程是怎么样的

你有什么技能比大多人&#xff08;超过90%以上&#xff09;更好&#xff1f; 现在可能是视频后期制作的能力&#xff0c;但我希望以后会是编程的能力&#xff0c;待人接物、为人处世的能力。 针对这个技能的获取你有什么成功的经验&#xff1f; 点亮视频后期这个技能可能和高中…...

英文网站建站公司/seo优化基础教程pdf

首先来介绍str_split()这个函数&#xff1b;它的作用是将字符串分割为数组&#xff1b;例如&#xff1a;$str‘abcde‘;str_plite($str);打印结果如下&#xff1a;Array([0] > a[1] > b[2] > c[3] > d[4] > e)看似很好用的样子&#xff1b;但是作为中国程序员&a…...

企业网站管理系统如何使用说明/网站策划方案

题目&#xff1a;原题链接&#xff08;简单&#xff09; 标签&#xff1a;常识 解法时间复杂度空间复杂度执行用时Ans 1 (Python)O(1)O(1)O(1)O(1)O(1)O(1)40ms (52.54%)Ans 2 (Python)Ans 3 (Python) 解法一&#xff1a; class Solution:def numberOfDays(self, Y: int, M:…...