路由设置假定客户端集在单个物理接口后面的不同网络上。 出于本例的目的,我们将假设:

客户端位于172.28.56.0/24网络上
路由器连接网络172.28.56.0/24和192.168.1.0/24
接口eth0在网络192.168.1.0/24上
接口eth1在网络172.28.56.0/24上
路由器已配置为为客户端正确路由流量。

在此示例中,我们将拦截遍历路由器的端口80(HTTP)流量。 第一步是使用iptables来
适当地处理IP数据包。

# reflow client web traffic to TPROXY
iptables -t mangle -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j TPROXY \
--on-ip 0.0.0.0 --on-port 8080 --tproxy-mark 1/1
# Let locally directed traffic pass through.
iptables -t mangle -A PREROUTING -i eth0 --source 192.168.1.0/24 -j ACCEPT
iptables -t mangle -A PREROUTING -i eth0 --destination 192.168.1.0/24 -j ACCEPT
# Mark presumed return web traffic
iptables -t mangle -A PREROUTING -i eth0 -p tcp -m tcp --sport 80 -j MARK --set-mark 1/1

我们标记数据包,以便我们可以对它们使用策略路由。 对于入站数据包,我们使用TPROXY来接受发送到外部IP地址的数据包。 对于返回出站数据包,将有一个套接字打开绑定到外部地址,我们只需要强制它在本地传递。 --on-ip的值为0,因为目标端口正在侦听并且未绑定到特定地址。 --on-port的值必须与Traffic Server服务器端口匹配。 否则它的值是任意的。 --dport和--sport从客户端和源服务器的角度指定端口。 中间的两行免除了本地Web流量被标记为Traffic Server - 这些规则可以根据需要收紧或放松。 它们通过匹配流量并在检查最后一行之前通过ACCEPT退出iptables处理来进行服务。

一旦标记了流,我们就可以通过策略路由表强制它们通过环回接口在本地传递。
ip rule add fwmark 1/1 table 1
ip route add local 0.0.0.0/0 dev lo table 1

使用的标记是任意的,但它必须在iptables和路由规则之间保持一致。

修改records.config
proxy.config.http.server_ports
STRING Default: value from --on-port
proxy.config.reverse_proxy.enabled
INT Default: 1
proxy.config.url_remap.remap_required
INT Default: 0

ats Linux路由器上内联的更多相关文章

  1. Linux C中内联汇编的语法格式及使用方法(Inline Assembly in Linux C)【转】

    转自:http://www.linuxidc.com/Linux/2013-06/85221p3.htm 阅读Linux内核源码或对代码做性能优化时,经常会有在C语言中嵌入一段汇编代码的需求,这种嵌入 ...

  2. linux系统上内网ip和和外网ip的关系

    1.不同服务之间的访问需要使用公网IP+端口才能访问 2.服务器上一般都是域名访问,服务器会把ip+端口映射成固定的域名,所以如果想访问服务器上其他应用,就必须的放开应用限制 问题,在服务器上放开对某 ...

  3. 【Linux学习笔记】Linux C中内联汇编的语法格式及使用方法(Inline Assembly in Linux C)

    http://blog.csdn.net/slvher/article/details/8864996 https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm. ...

  4. 页面上使用 Thymeleaf 的内联js不当造成了 java.lang.StackOverflowError: null 问题

    由于在页面上内联js使用不当,从而在从 Controller 跳转到页面时发生了以下错误: java.lang.StackOverflowError: null at org.thymeleaf.ut ...

  5. 特殊用途语言特性——默认参数、内联函数和constexptr函数

    1 默认实参 某些函数有这样一些参数,在函数的很多次调用中它们都被赋予一个相同的值,此时,我们把这个反复出现的值称为函数的默认实参.调用含有默认实参的函数时,可以包含该实参,也可以省略该实参. 我们可 ...

  6. C++ inline内联函数

    inline 函数避免函数调用的开销 // find longer of two strings const string &shorterString(const string &s ...

  7. 《C++ Primer》笔记-inline内联函数

    inline 函数避免函数调用的开销 // find longer of two strings const string &shorterString(const string &s ...

  8. c++ 内联函数 (讲解的TM真好)

    1.  内联函数 在C++中我们通常定义以下函数来求两个整数的最大值: 复制代码 代码如下: int max(int a, int b) {  return a > b ? a : b; } 为 ...

  9. C++ 函数 内联函数

    内联函数的功能和预处理宏的功能相似,在介绍内联函数之前,先介绍一下预处理宏.宏是简单字符替换,最常见的用法:定义了一个代表某个值的全局符号.定义可调用带参数的宏.作为一种约定,习惯上总是用大写字母来定 ...

随机推荐

  1. POJ Football Game 【NIMK博弈 && Bash 博弈】

    Football Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 451   Accepted: 178 Descr ...

  2. EF Core 入门

    官方文档地址 https://docs.microsoft.com/zh-cn/aspnet/?view=aspnetcore-2.2#pivot=core EF Core 使用 1. 创建数据库上下 ...

  3. SSM框架之RestFul示例

    演示环境:maven+Spring+SpringMVC+MyBatis Plus或MyBatis都行+JDK8 JDK7我想应该没有问题,原因是用的基本都是JDK6或者JDK7的相关特性. 当然了,J ...

  4. Flume性能测试报告(翻译Flume官方wiki报告)

    因使用flume的时候总是会对其性能有所调研,网上找的要么就是自测的这里找到一份官方wiki的测试报告供大家参考 https://cwiki.apache.org/confluence/display ...

  5. [NOIp2009] $Hankson$の趣味题

    \(23333\)这是最近第二份在时间上吊打\(yjk\)的代码--啊哈哈哈哈哈哈哈 嗯,其实遇到这种单纯的\(gcd \ \ or \ \ lcm\)的题,我们都可以用一种比较简单的方法分析:唯一分 ...

  6. CPP/类/成员函数访问权限

  7. flex 自适应

    flex-grow.flex-shrink.flex-basis这三个属性的作用是:在flex布局中,父元素在不同宽度下,子元素是如何分配父元素的空间的. 其中,这三个属性都是在子元素上设置的. 注: ...

  8. Redis 可视化工具 Redis Desktop Manager 和 treeNMS 的使用

    这里介绍两个 Redis 可视化工具.Redis Desktop Manager 和 treeNMS. 一.Redis Desktop Manager 下载地址:https://redisdeskto ...

  9. 2017-2018-1 20155330 《信息安全系统设计基础》第10周课堂测试&课下作业

    2017-2018-1 20155330 <信息安全系统设计基础>第10周课堂测试&课下作业 stat命令的实现-mysate 学习使用stat(1),并用C语言实现 提交学习st ...

  10. MySQL下建立表

    磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL杂记页     回到顶级页面:PostgreSQL索引页 [作者 高健@博客园  luckyjackgao@gmail. ...