我有一台 ubuntu 服务器,上面有一个小型 apache 服务器。我有一个域转发到它 home.something.com 和 server1.home.something.com 以及 stations1.home.something.me,我还有一个工作站,上面也有一个在相同端口上运行的 apache 服务器,我不需要更改它,因此我可以从本地网络上的 server1 转发所有到工作站 1 的数据包,然后获取这些数据包并将它们转发到客户端吗?抱歉我的解释不好,但我感到厌烦和非常沮丧。
答案1
让我们尝试进行设置
拓扑
|--------------------| | home.something.com |--------------------------| |--------------------| | | |----------| |----------------------------| | | | | server1.home.something.com |------------------|------------------| 服务器 |-- 互联网 |----------------------------| | | | | |----------| |--------------------------------| | |工作站1.家.某物.我 |-----------| |--------------------------------|
所有树服务器均已安装
apache
。所有树服务器都监听端口上的连接
80
所有流量都来自
internet
IP 设置
- 服务器 - 互联网 - IP地址:192.168.1.100 纳米:255.255.255.0 网关:192.168.1.1 -- lan 到 home.something.com-- IP地址:192.168.2.100 纳米:255.255.255.0 -- lan 到 server1.home.something.com IP地址:192.168.3.100 纳米:255.255.255.0 -- lan 到 station1.home.something.me IP地址:192.168.4.100 纳米:255.255.255.0 - home.something.com -- IP地址:192.168.2.1 纳米:255.255.255.0 网关:192.168.2.100 - server1.home.something.com IP地址:192.168.3.1 纳米:255.255.255.0 网关:192.168.3.100 - 工作站1.home.something.me IP地址:192.168.4.1 纳米:255.255.255.0 网关:192.168.4.100
iptables
在服务器上设置
清除现有链
sudo iptables --flush
sudo iptables --delete-chain
允许环回
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
允许所有 ICMP
sudo iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
sudo iptables -A OUTPUT -p icmp -j ACCEPT
允许已建立的连接
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
HTTP
RDR 访问home.something.com
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -m string --string "Host: home.something.com" --algo bm -j DNAT --to-destination 192.168.2.1:80
然后规则从192.168.2.1
到互联网的流量
sudo iptables -t nat -A POSTROUTING -s 192.168.2.1 -j SNAT --to-source 192.168.1.100
RDR 访问server1.home.something.com
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -m string --string "Host: server1.home.something.com" --algo bm -j DNAT --to-destination 192.168.3.1:80
然后规则从192.168.3.1
到互联网的流量
sudo iptables -t nat -A POSTROUTING -s 192.168.3.1 -j SNAT --to-source 192.168.1.100
RDR 访问workstation1.home.something.me
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -m string --string "Host: workstation1.home.something.me" --algo bm -j DNAT --to-destination 192.168.3.1:80
然后规则从192.168.4.1
到互联网的流量
sudo iptables -t nat -A POSTROUTING -s 192.168.4.1 -j SNAT --to-source 192.168.1.100
SSH
sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
允许转发
sudo iptables -P FORWARD ACCEPT
全部拒绝接受以上规则
sudo iptables -A INPUT -j DROP
默认策略
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
节省
sudo service iptables save
并添加规则
sudo echo "1" > /proc/sys/net/ipv4/ip_forward
我不确定这是否有用,但你可以尝试一下:)