我正在尝试设置DNS MASK
像这样通过 LAN 进行路由:client requests https//example.com:4430
路由到server https://192.168.1.80:443
DNS 掩码正在服务器上运行
我将客户端指向 DNS 8.8.8.8 并尝试访问https//example.com:4430
在我的服务器上/etc/dnsmasq.conf
interface=eth0
domain-needed
bogus-priv
no-poll
no-resolv
cache-size=150
server=8.8.8.8
address=/example.com/192.168.1.80
我的服务器/etc/hosts/
127.0.0.1 localhost
127.0.1.1 cloud
example.com
我的服务器 apache conf 文件
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
DocumentRoot /var/www/nextcloud
CustomLog /var/log/apache2/nc-access.log combined
ErrorLog /var/log/apache2/nc-error.log
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
LimitRequestBody 0
SSLRenegBufferSize 10486000
</Directory>
</IfModule>
<IfModule mod_ssl.c>
<VirtualHost *:4430>
DocumentRoot /var/www/nextcloud
CustomLog /var/log/apache2/nc-access.log combined
ErrorLog /var/log/apache2/nc-error.log
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
LimitRequestBody 0
SSLRenegBufferSize 10486000
</Directory>
</IfModule>
答案1
要使用您的dnsmasq
实例,您应该让您的客户端指向您的服务器而不是8.8.8.8
(或者在客户端路由器上执行 DNAT)。
DNS 不足以完成您想要的操作(将 https//example.com:4430 重定向到https://192.168.1.80:443)因为 DNS 可以“更改”地址,但是不能“更改”端口。因此您的*:4430
虚拟主机应该回复重定向到端口443
以使其工作。
DNAT
另一种方法是在客户端路由器上进行example_ip:4430
natting server_ip:443
。