首页 > 系统相关 >配置ubuntu做路由器脚本,配置linux系统做路由器脚本,trojan透明代理配置.

配置ubuntu做路由器脚本,配置linux系统做路由器脚本,trojan透明代理配置.

时间:2024-12-19 17:44:26浏览次数:8  
标签:脚本 iptables trojan sudo 配置 SHA nat ECDHE 路由器

以下脚本在ubuntu 18.04上测试成功,不兼容iptables被替换成nftables的版本。

 

透明代理在家庭网络和企业网络中都得到了广泛的应用,尤其是在网络安全和性能优化方面。

优点:

  • 无需客户端配置:客户端不需要进行任何设置,代理是由路由器自动处理的。
  • 可用于流量监控与管理:透明代理可以用于监控和限制网络流量,特别适用于企业或学校等环境,对流量进行统一过滤和监控。
  • 提高网络性能:缓存和内容压缩封包,可以极大的提高网络响应速度。

缺点:

  • 可能影响隐私:由于透明代理会拦截所有流量,它可能会泄露用户的网络行为。

在路由器中,透明代理通常通过以下几种技术实现:

  • 端口重定向(Port Redirection):路由器将某些特定端口(例如 HTTP 的 80 端口)上的流量重定向到代理服务器。
  • 网络地址转换(NAT):通过修改数据包的源地址或目标地址,将流量引导到代理服务器。
  • 防火墙规则:通过配置防火墙规则,将流量强制转发到代理服务器。

 

 

linux配置成路由器脚本:

#!/bin/bash
# 配置网络接口,以下网络接口名请按实际端口名修改,单一网口的配置一个WAN就可以实现路由功能,删掉LAN相关的代码
LAN_INTERFACE="enp0s3"
WAN_INTERFACE="enp0s8"



# 更新ubuntu系统并安装必要的软件
echo "Updating system and installing required packages..."
sudo apt-get update
sudo apt-get install -y dnsmasq iptables-persistent net-tools ifupdown

# 启用 IP 转发
echo "Enabling IP forwarding..."
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

# 设置永久启用 IP 转发
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p


# 配置 NAT 转发规则
echo "Configuring NAT and firewall rules..."
sudo iptables -t nat -A POSTROUTING -o $WAN_INTERFACE -j MASQUERADE
sudo iptables -A FORWARD -i $LAN_INTERFACE -o $WAN_INTERFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i $WAN_INTERFACE -o $LAN_INTERFACE -j ACCEPT
# 保存 iptables 规则
echo "Saving iptables rules..."
sudo sh -c 'iptables-save > /etc/iptables/rules.v4'


# 配置网络接口文件 (假设使用的是 `/etc/network/interfaces` 文件管理网络)
echo "Configuring network interfaces..."
cat <<EOL | sudo tee /etc/network/interfaces
# 网络设备基础配置
auto lo
iface lo inet loopback

# 外网接口配置 eth1 (WAN)
#iface $WAN_INTERFACE inet dhcp
# 内网接口配置 eth0 (LAN)
EOL
# 重启网络服务
echo "Restarting networking service..."
sudo systemctl restart networking



# 配置 `dnsmasq` 提供 DHCP 服务
echo "Configuring dnsmasq for DHCP service..."
cat <<EOL | sudo tee /etc/dnsmasq.conf
# 配置 DHCP 服务
interface=$LAN_INTERFACE
dhcp-range=$LAN_DHCP_RANGE
dhcp-option=3,$LAN_IP        # 网关地址
dhcp-option=6,$LAN_DNS        # DNS 地址
EOL

# 启动 dnsmasq 服务
echo "Starting dnsmasq service..."
sudo systemctl restart dnsmasq



# 完成提示
echo "Ubuntu 已经配置成为NAT路由器"

  

以上脚本执行完成后,用这个linux主机做网关,监测是否可以正常上网。上网正常,路由器模式配置完成。

 

 

 

 

以下是TROJAN透明代理部分,以下是trojan的配置文件,模式是nat模式,代理监听在本地的1080端口

{
    "run_type": "nat",
    "local_addr": "0.0.0.0",
    "local_port": 1080,
    "remote_addr": "改为代理服务器IP",
    "remote_port": 改为代理服务器端口,
    "password": [
        "改为连接密码"
    ],
    "log_level": 1,
    "ssl": {
        "verify": false,
        "verify_hostname": false,
        "cert": "",
        "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA",
        "cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384",
        "sni": "",
        "alpn": [
            "h2",
            "http/1.1"
        ],
        "reuse_session": true,
        "session_ticket": false,
        "curves": ""
    },
    "tcp": {
        "no_delay": true,
        "keep_alive": true,
        "reuse_port": false,
        "fast_open": false,
        "fast_open_qlen": 20
    }
}

  

trojan软件运行无报错后,继续配置服务器iptables 策略,抓包进入1080端口。


#!/bin/bash

#在nat表内创建trojan链路,把代理服务器IP和本地IP都加入到白名单,不走代理。

sudo iptables -t nat -N trojan
sudo iptables -t nat -A trojan -d 修改为代理服务器IP -j RETURN
sudo iptables -t nat -A trojan -d 192.168.0.0/16 -j RETURN
sudo iptables -t nat -A trojan -d 10.0.0.0/16 -j RETURN
sudo iptables -t nat -A trojan -d 127.0.0.0/8 -j RETURN
sudo iptables -t nat -A trojan -d 169.254.0.0/16 -j RETURN
sudo iptables -t nat -A trojan -d 172.16.0.0/12 -j RETURN
sudo iptables -t nat -A trojan -d 0.0.0.0/8 -j RETURN

#截取所有TCP连接进入梯子端口
sudo iptables -t nat -A trojan -p tcp -j REDIRECT --to-ports 1080
sudo iptables -t nat -A PREROUTING -p tcp -j trojan

# 保存 iptables 规则
echo "Saving iptables rules..."
sudo sh -c 'iptables-save > /etc/iptables/rules.v4'

 

  

通过运行以上脚本后,可以看到trojan的日志有连接信息输出,说明配置生效。此时还不能上需要代理的网站,因为UDP协议的DNS没有走代理,需要启用浏览器的安全DNS,谷歌浏览器在隐私与安全页面配置:  chrome://settings/security

 

标签:脚本,iptables,trojan,sudo,配置,SHA,nat,ECDHE,路由器
From: https://www.cnblogs.com/aldary/p/18617662

相关文章

  • 【基于Windows安装配置nacos 2.4.3、开机自启动、启动默认单机模式、单机模式匹配MySQ
    【基于Windows安装配置nacos2.4.3、开机自启动、启动默认单机模式、单机模式匹配MySQL】前言一、下载安装Windows版nacos2.4.3二、配置nacos完成自启单机模式三、设置Windows开机自启四、匹配MySQL数据库总结提示:可以在官网选择下载符合自己要求的版本前言......
  • Springboot logback 日志打印配置文件,每个日志文件100M,之后滚动到下一个日志文件,日
    全部配置logback.xml<?xmlversion="1.0"encoding="UTF-8"?><configurationdebug="false"><propertyname="LOG_HOME"value="log"/><propertyname="LOG_NAME"value="......
  • 配置 MongoDB 为副本集
    1.配置MongoDB为副本集首先,你需要在mongod.cfg配置文件中启用副本集并指定副本集名称。假设副本集名称为rs0。打开你的MongoDB配置文件(mongod.cfg,Windows上通常位于C:\ProgramFiles\MongoDB\Server\<version>\mongod.cfg,Linux上通常是/etc/mongod.conf),并添加以下内......
  • 【路由交换】华为ENSP配置网口桥接
    ENSP桥接物理网口,需要创建Cloud云对象,并在云对象中完成接口绑定配置绑定物理网口绑定UDP端口配置端口映射模拟器和cloud对象连接网络连接测试......
  • MyBatis 中的映射器配置:XML 与注解开发的对比与选择
    MyBatis中的映射器配置:XML与注解开发的对比与选择在MyBatis开发中,映射器(Mapper)是连接数据库和Java对象的核心组件。MyBatis提供了两种主要的映射器配置方式:基于XML的映射文件和基于注解的开发。本文将详细介绍这两种方式的使用场景、配置方法以及它们的优缺点,帮助你在实......
  • 【路由交换】华为交换机和路由器配置DHCP和DHCP中继
    1.DHCP原理和实验拓扑1.1.DHCP原理DHCP一共有四个阶段:DHCPDiscover、DHCPOffer、DHCPRequest、DHCPACKDHCPDiscover:发送DHCPDiscover消息,寻找DHCPServer,表示自己需要获取一个IP地址DHCPOffer:响应所收到的DHCPDiscover消息,把准备提供的IP地址携带在DHCPOffer消息中......
  • 【MindSpore】CPU——环境配置
    【MindSpore】CPU——环境配置写在最前面一、Conda方式安装MindSporeCPU版本1.安装前准备2.(因为前一篇博客安装错了,所以我需要,一般不需要)删除之前的昇腾AI处理器版本的conda--mindspore_py393.创建并进入Conda虚拟环境4.安装MindSpore5.验证是否安装成功6.升级......
  • 路由器和交换机之间的链路聚合
    SW1[sw1]vlanbatch1020100[sw1]intg0/0/4[sw1-GigabitEthernet0/0/4]portlink-typeaccess[sw1-GigabitEthernet0/0/4]portdefaultvlan10[sw1-GigabitEthernet0/0/4]intvlanif10[sw1-Vlanif10]ipaddress192.168.10.25424[sw1]intg0/0/5[sw1-GigabitEth......
  • Linux中,使用 ./ 和 sh 执行脚本的区别是什么
    这些区别主要体现在执行环境、权限要求和子进程管理等方面一.可执行权限(不一样)./:使用./script.sh执行脚本时,脚本必须具有可执行权限。这意味着你需要先使用chmod+xscript.sh命令来赋予脚本执行权限。chmod+xscript.sh./script.shsh:使用shscript.sh执行脚......
  • Nacos共享配置(shared-configs)和扩展配(extension-config)
    原文地址:https://www.jianshu.com/p/8715072d3f4c一、共享配置(shared-configs)和扩展配(extension-config)日常开发中,多个模块可能会有很多共用的配置,比如数据库连接信息,Redis连接信息,RabbitMQ连接信息,监控配置等等。那么此时,我们就希望可以加载多个配置,多个项目共享同一个配......