DEV Community

Michael
Michael

Posted on • Edited on

Ubuntu热点问题

最近从公司出来了,自己电脑重新启动,升级到Ubuntu24.04LTS, 目前基本稳定。使用过程中碰到一个需求,需要开启热点供手机联网。虽然是最新版本LTS, 其他版本应该也能使用。下面就遇到的问题整理下。

  1. 开启热点注意点
    开启热点不能使用wifi, 所以如果要开启热点上网需要使用有线连接,以前使用MAC有类似经历,所以这个对我不是问题。

  2. 笔记本网络正常,开启热点正常,手机能连上,但是显示“无网络连接”
    这个在网上找了半天答案,发现是由于防火墙问题,临时打开防火墙就好,完事后开启就好
    经过网友提醒,ufw可以不用关闭,添加相关ufw策略就好,主要是运行无线网卡数据进入,物理网卡可以路由数据,因为无线网卡数据会通过物理网卡流出。

sudo ufw allow in on wlp4s0

sudo ufw status numbered
sudo ufw delete 
Enter fullscreen mode Exit fullscreen mode
  1. 连上网络后,我们希望手机流量全部通过SOCKS5流量到server端口,比如本地的1080端口。这需要借助redsocks和iptables, 前者相当于本地的SOCKS5的客户端,接受手机流量,后者将手机流量全部导入到redsocks,通过他发送到SOCKS5服务端。
# 1. 安装和设置redsocks
sudo apt install redsocks
# 修改redsocks配置,主要是客户端和服务端接口
sudo vi /etc/redsocks.conf 
# 客户端监听所有网卡
# local_ip = 0.0.0.0
# 服务端接口设置
# port = 1080

# 2. iptable设置
sudo iptables -t nat -N REDSOCKS # 新建链

# 将无线网卡流量全部交给新链处理
sudo iptables -t nat -A PREROUTING -i wlp4s0 -p tcp -j REDSOCKS 

# 在nat表中添加新链处理,所有新链流量给到redsocks设置的客户端端口
sudo iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-port 12345

# 相关删除操作,看着处理,最好有点iptables知识
sudo iptables -t nat -L PREROUTING -v --line-numbers
sudo iptables -t nat -D PREROUTING 2 # 数字需要看上面打印出来的行号
sudo iptables -t nat -D REDSOCKS 1 # 数字需要看上面打印出来的行号
# OR
sudo iptables -t nat -F REDSOCKS # 清空自定义链
# 规则全部删除完毕后,才能删除自定义链
sudo iptables -t nat -X REDSOCKS
Enter fullscreen mode Exit fullscreen mode

自动化脚本

暂时不贴上来了,就是上面的放在一起,另外可以使用nmcli来自动化开启和删除hotspot

nmcli dev wifi hotspot con-name MyHotspot ssid ubuntu password 88888888
nmcli connection show | grep 'MyHotspot'
nmcli connection delete MyHotspot
Enter fullscreen mode Exit fullscreen mode

Top comments (0)