一条命令将 Linux 设置为路由器。能够提供互联网连接或创建 WiFi 热点。支持透明代理(redsocks)。同时也适用于虚拟机/容器的路由。
它封装了 iptables
、dnsmasq
等工具。一条命令使用,一条命令还原或通过 control-c
恢复(甚至关闭终端窗口即可恢复)。
Linux-Router 新闻 & 开发者笔记 📰 | 更多工具和项目 🛠️ | 🍻 请我喝杯咖啡 ❤️
基本功能:
trusted
区域)更多功能请参见下方命令行用法
互联网----(eth0/wlan0)-Linux-(wlanX)AP
|--客户端
|--客户端
互联网
WiFi AP(无DHCP) |
|----(wlan1)-Linux-(eth0/wlan0)------
| (DHCP)
|--客户端
|--客户端
互联网
交换机 |
|---(eth1)-Linux-(eth0/wlan0)--------
|--客户端
|--客户端
互联网----(eth0/wlan0)-Linux-(eth1)------另一台PC
互联网----(eth0/wlan0)-Linux-(虚拟接口)-----虚拟机/容器
单文件脚本。在 GitHub 上的 Linux-router 仓库发布。只需下载并运行 bash 脚本(满足依赖)。这种情况下无需安装即可使用。
我目前没有为任何发行版打包。如果你打包了,欢迎提交 PR 并在此处添加链接(可以带版本徽章)
Linux 发行版 | |
---|---|
任意 | 下载单文件脚本并无需安装即可运行 |
iptables-nft
转换链接的 nftables)sudo lnxrouter -i eth1
无论你从哪个接口(除了 eth1
)获取互联网。
sudo lnxrouter --ap wlan0 MyAccessPoint -p MyPassPhrase
无论你从哪个接口获取互联网(即使是 wlan0
)。将为热点创建虚拟接口 x0wlan0
。
客户端只通过 isp5
访 问互联网
sudo lnxrouter -i eth1 -o isp5 --no-dns --dhcp-dns 1.1.1.1 -6 --dhcp-dns6 [2606:4700:4700::1111]
</details>在这种用法下,建议:
- 停止提供本地 DNS
- 告诉客户端使用哪个 DNS (ISP5 的 DNS。或者,安全的公共 DNS,如上例所示)
sudo lnxrouter -n -i eth1
</details>sudo lnxrouter -n --ap wlan0 MyAccessPoint -p MyPassPhrase
创建一个桥接
sudo brctl addbr lxcbr5
在 LXC 容器的 config
中
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = lxcbr5
lxc.network.hwaddr = xx:xx:xx:xx:xx:xx
</details>sudo lnxrouter -i lxcbr5
所有客户端的互联网流量都通过,例如,Tor(注意此例并非匿名用途)
<details>sudo lnxrouter -i eth1 --tp 9040 --dns 9053 -g 192.168.55.1 -6 --p6 fd00:5:6:7::
在 torrc
中
TransPort 192.168.55.1:9040
DNSPort 192.168.55.1:9053
TransPort [fd00:5:6:7::1]:9040
DNSPort [fd00:5:6:7::1]:9053
</details>警告: Tor 的匿名性依赖于专门设计的浏览器。像这样使用 Tor(将 Tor 网络共享给局域网客户端)不能确保匿名性。
尽管我们在这里使用 Tor 作为示例,但 Linux-router 并不确保也不以匿名性为目标。
不向客户端提供我们的信息。客户端仍可访问互联网。
<details></details>sudo lnxrouter -i eth1 \ --tp 9040 --dns 9053 \ --random-mac \ --ban-priv \ --catch-dns --log-dns # 可选
Linux-router 不提供任何保证。使用风险自负
创建一个桥接
sudo brctl addbr lxdbr5
创建并添加一个新的 LXD 配置文件来覆盖容器的 eth0
lxc profile create profile5 lxc profile edit profile5 ### 配置文件内容 ### config: {} description: "" devices: eth0: name: eth0 nictype: bridged parent: lxdbr5 type: nic name: profile5 lxc profile add <容器名> profile5
sudo lnxrouter -i lxdbr5 --tp 9040 --dns 9053
从容器中移除新配置文件
lxc profile remove <容器名> profile5
向容器添加新的 eth0
,覆盖默认的 eth0
lxc config device add <容器名> eth0 nic name=eth0 nictype=bridged parent=lxdbr5
移除自定义的 eth0
以恢复默认的 eth0
lxc config device remove <容器名> eth0
在 VirtualBox 的全局设置中,创建一个禁用 DHCP 的仅主机网络 vboxnet5
。
sudo lnxrouter -i vboxnet5 --tp 9040 --dns 9053