ubuntu配置共享网络

1,508 阅读2分钟

起因

由于工作的需要,配置了一台ubuntu的服务器(带界面的),需求:

  1. 无线网卡连接外网,有线网卡插交换机后接AP进行功放网络,相当于作为路由器来使用
  2. 服务器上会运行服务,将IP和端口转发,连接上无线网后直接访问网站可以直接访问相应的服务(不使用Nginx或者Apache,因为觉得没必要)

记录一下解决方法与过程,方便日后查找与学习

步骤

  1. 安装dnsmasq,进行dns拦截,来达到访问 网址+端口 == IP + 端口的效果
  2. 配置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
    
  3. 重启dnsmasq服务
    systemctl stop dnsmasq
    systemctl start dnsmasq
    
  4. 新增路由,进行端口转发
    # 增加路由端口转发
    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
    
  5. 修改网卡子网掩码,增加IP分配数量
    1. 打开 /etc/network/interfaces,其中默认应该应该是以下的样子
    # interfaces(5) file used by ifup(8) and ifdown(8)
    auto lo
    iface lo inet loopback
    
    1. 添加以下内容,保存并退出
    # 网卡名称
    auto xxx
    # 设置网卡模式,share:与其他计算机共享;dhcp:动态获取;static:静态设置,我这里使用的是share因为需要分发IP
    iface xxx inet share
    # 设置IP地址,固定IP
    address xx.xx.xx.xx
    # 设置子网掩码,看自己需要多少IP
    netmask 255.255.240.0
    
    1. 打开 /etc/NetworkManager/NetworkManager.conf,将managed=false更改为true,否则重启后会显示该网卡未托管而无法使用
  6. 重启电脑

以上就是配置的全过程,目前可以正常使用,系统为ubuntu16.04,如有错误欢迎留言指正~