我们可以为所有用户设置带宽限制吗?
我想通过我的 Ubuntu 服务器共享互联网。这可能吗?
答案1
共享 Internet 连接很容易,DpN 已经通过 GUI 提供了一个可能的解决方案。或者,您可以使用iptables
和masquerading
来实现相同的功能,尽管它没有 GUI。更多信息可以在http://www.tldp.org/HOWTO/IP-Masquerade-HOWTO/firewall-examples.html
以下是您可以在服务器上运行的示例脚本。您可以向其他机器提供此服务器的网关,以便它们可以通过此网关访问互联网。
#!/bin/bash
echo -e "\n\nSETTING UP IPTABLES PROXY..."
INTIF="eth0"
EXTIF="eth1"
EXTIP="your.static.IP.address"
echo "Loading required stateful/NAT kernel modules..."
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
echo " Enabling IP forwarding..."
echo "1" > /proc/sys/net/ipv4/ip_forward
echo " Loading proxy server rules..."
# Clearing any existing rules and setting default policy
iptables -P INPUT ACCEPT
iptables -F INPUT
iptables -P OUTPUT ACCEPT
iptables -F OUTPUT
iptables -P FORWARD DROP
iptables -F FORWARD
iptables -t nat -F
# FWD: Allow all connections OUT and only existing and related ones IN
iptables -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
# Enabling SNAT (MASQUERADE) functionality on $EXTIF
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
echo -e " Proxy server rule loading complete\n\n"
但是,管理/限制带宽(也称为流量整形)是另一回事。您需要对要使用的工具以及您的需求有一些高级了解。有一些外部防火墙,例如普富思它可以帮助您很好地管理它,但它需要不同类型的网络设置。