起因
由于工作的需要,配置了一台ubuntu的服务器(带界面的),需求:
- 无线网卡连接外网,有线网卡插交换机后接AP进行功放网络,相当于作为路由器来使用
- 服务器上会运行服务,将IP和端口转发,连接上无线网后直接访问网站可以直接访问相应的服务(不使用Nginx或者Apache,因为觉得没必要)
记录一下解决方法与过程,方便日后查找与学习
步骤
- 安装dnsmasq,进行dns拦截,来达到访问 网址+端口 == IP + 端口的效果
- 配置dnsmasq,打开/etc/dnsmasq.conf,添加一下配置(或者是解注)
# 定义dnsmasq从哪里获取上游DNS服务器的地址,默认是从/etc/resolv.conf获取 resolv-file=/etc/resolv.dnsmasq.conf # 定义dnsmasq监听的地址,默认是监控本机的所有网卡上。局域网内主机若要使用dnsmasq服务时,指定本机的IP地址 listen-address=127.0.0.1 # 设置一个反向解析,即所有的地址都解析到特定dns去解析 address=/www.xxxx.com(域名)/xx.xx.xx.xx(IP) # 设置dns缓存大小,默认为150条 cache-size=150 - 重启dnsmasq服务
systemctl stop dnsmasq systemctl start dnsmasq - 新增路由,进行端口转发
# 增加路由端口转发 sudo iptables -t nat -A PREROUTING -d xx.xx.xx.xx(IP地址) -p tcp --dport 80(访问地址是默认为80端口) -j DNAT --to-destination xx.xx.xx.xx:xx(IP+端口) # 查看路由表 sudo iptables -t nat --list # 删除路由端口转发 sudo iptables -t nat -D PREROUTING 1 - 修改网卡子网掩码,增加IP分配数量
- 打开 /etc/network/interfaces,其中默认应该应该是以下的样子
# interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback- 添加以下内容,保存并退出
# 网卡名称 auto xxx # 设置网卡模式,share:与其他计算机共享;dhcp:动态获取;static:静态设置,我这里使用的是share因为需要分发IP iface xxx inet share # 设置IP地址,固定IP address xx.xx.xx.xx # 设置子网掩码,看自己需要多少IP netmask 255.255.240.0- 打开 /etc/NetworkManager/NetworkManager.conf,将
managed=false更改为true,否则重启后会显示该网卡未托管而无法使用
- 重启电脑
以上就是配置的全过程,目前可以正常使用,系统为ubuntu16.04,如有错误欢迎留言指正~