Linux 用无线网卡开热点, 如何能让连接到热点的终端与主机在同一网络?

2020-10-20 10:27:22 +08:00
 liut2016

场景:
公司网络, 每个员工分配了几个静态 IP, 工位只有一个物理网口, 供工作机使用, 其它几个 IP 可以虚拟机桥接使用. 公司网络限制了以 nat 形式接入, 会被拦截并断网.

需求:
我想通过外接无线网卡, 使其它物理终端通过工作机无线网卡接入互联网, 又无法直接使用热点功能实现(nat), 所以前来求助, 是否有办法使其它终端通过无线网卡桥接在工作机网络上?

2840 次点击
所在节点    Linux
17 条回复
liut2016
2020-10-20 10:43:39 +08:00
太难了, 不知道通过 bridge 能不能实现?
jim9606
2020-10-20 10:47:37 +08:00
NAT 都不行的话 bridge 肯定也不行吧?咋拦截 NAT 的,是工作机上有监控软件吗?
saytesnake
2020-10-20 10:51:42 +08:00
这个之前研究了一段时间,后来无果。
python35
2020-10-20 10:57:11 +08:00
NAT 怎么拦截的 难道道监测 TTL
jasonyang9
2020-10-20 11:33:32 +08:00
@python35 应该就是检查的 TTL 。

用 iptables 的 mangle 表的 POSTROUTING 链修改 TTL 试试
jasonyang9
2020-10-20 11:45:34 +08:00
另外贴一个早期用的,在 CentOS 上起热点的命令:

```
nmcli connection add \
connection.type "802-11-wireless" \
connection.interface-name "your_interface_name" \
connection.id "your_hotspot_id" \
connection.autoconnect "no" \
802-11-wireless.ssid "your_hotspot_ssid" \
802-11-wireless.mode "ap" \
802-11-wireless.band "bg" \
802-11-wireless-security.key-mgmt "wpa-psk" \
802-11-wireless-security.psk "your_password" \
ipv4.method "shared"

nmcli connection up "your_hotspot_id"
```

可能需要 dnsmasq 。
zhangsanfeng2012
2020-10-20 12:04:18 +08:00
把有线网卡和无线网卡桥起来,开 ap 模式,开 dhcp server 把静态 IP 分出去
liut2016
2020-10-20 13:27:32 +08:00
@jim9606 工作机上没有监控软件, 应该是网关处的监控(被拦截时显示某康科技), 我也不太清楚是不是拦截的 nat, 反正虚拟机 nat 上网和直接无线 ap 都会被拦截, 虚拟机桥接则不会拦截
liut2016
2020-10-20 13:52:03 +08:00
@zhangsanfeng2012 我刚试了下把无线网卡和有线通过 bridge 桥接, 直接就无法上网了, 这个方法应该不行
flynaj
2020-10-20 13:57:37 +08:00
按照你说的,桥接就可以了,是不了是你没有桥接对,要么就是绑定了 mac 地址!
liut2016
2020-10-20 14:02:00 +08:00
@jasonyang9 我用的 gnome 桌面, 起热点是很方便的.

<br/>
想请教下 iptables 修改 ttl, 我对这块不太熟悉, 我搜到以下命令可以修改 ttl:

<br/>
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-dec 1

<br/>
请教下, 我应该修改哪个网卡的 ttl, 无线网卡还是有线的, 把值减少 1 是吧?
a6821630
2020-10-20 14:25:26 +08:00
这样的方法应该就行,就是搞一个单臂路由器,比如主路由器网关是 192.168.1.1,单臂路由器的 ip 是 192.168.1.2,网关当然也 192.168.1.2, 下面电脑网关把 192.168.1.1 改为 192.168.1.2
jasonyang9
2020-10-20 17:04:40 +08:00
@liut2016 #11 大概是这样的,用 iptables 的 TTL 目标直接设定 TTL 值, 所以你要先检查正常情况下可通过公司网关的 TTL 值,然后是 TTL 目标加`--ttl-set`选项:

```
iptables -t mangle -A POSTROUTING -j TTL --ttl-set 64
```

语义是所有发到网上去的不关是本机产生的还是转发的都将 TTL 字段的值设定为 64 。

至于是 PREROUTING 、FORWARD 、INPUT 、OUTPUT 、POSTROUTING 中的哪个链,我也不是很确定,请熟悉的同学回答。一个个尝试,或系统的看看 iptables 教程。
liut2016
2020-10-20 19:19:25 +08:00
@jasonyang9 好的, 多谢大佬指点
wujunze
2020-10-20 19:54:12 +08:00
买个路由器 可解 哈哈哈
12101111
2020-10-20 19:57:42 +08:00
nat 不行桥接肯定不行的,而且会被直接发现.如果改 ttl 也不行, 工作机没有装监控软件可以开一个 socks5 代理,然后其他机器通过无线然后连接到代理
owt5008137
2020-10-21 09:52:28 +08:00
同问咋检测 NAT 的?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/716610

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX