增加一个ip到ip的映射

前言

地址需要转换的情况下,访问一个本机的ip能够自动跳转访问另外一个地址,也就是seafile的访问地址下载链接的时候自动识别为内网的地址,我们需要让访问这个内网地址的时候跳转到外网的地址

自己主机增加一个IP

自己用哪个网卡上网就用哪个网卡增加一个静态ip

20.20.20.247
子网掩码255.255.255.255

对于直接设置无法生效IP的情况

netsh interface ip add address name="以太网" 20.20.20.247 255.255.255.255

增加一个本机的代理转发

netsh interface portproxy add v4tov4 listenport=8082 listenaddress=* connectport=8082 connectaddress=vclusters.imwork.net

查询下设置情况

netsh interface portproxy dump

查询端口监听

NETSTAT.EXE -antp tcp|findstr LISTENING|findstr 8082

如果需要删除

netsh interface portproxy delete v4tov4 listenport=8082 listenaddress=*

然后正常访问即可

http://vclusters.imwork.net:8888/

这个方案存在一个问题,一个内网里面只能由一个设置这个IP的,否则有问题,第二个ip拉不起来

通过内网一台机器跳转

[root@lab101 ~]# cat iptable.sh 
#!/bin/sh 

myip=113.110.224.246
IPT="/sbin/iptables"
/bin/echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
$IPT -F
$IPT -t nat -F
$IPT -X
$IPT -t nat -X
$IPT -Z
$IPT -t nat -Z

iptables -t nat -A PREROUTING  -p tcp --dport 8082   -i enp6s0f1 -d 20.20.20.247  -j DNAT --to-destination $myip:8082
iptables -t nat -A POSTROUTING  -j MASQUERADE

[root@lab101 ~]# cat update.sh 
#! /bin/sh

ip=`nslookup vclusters.imwork.net|grep -v 223.5.5.5|grep Address|awk '{print $2}'`
echo $ip

if [ -z "$ip" ]; then
    echo "no ip"
    exit 0
fi

sed -i "/^myip=*/c myip=$ip" /root/iptable.sh
sh /root/iptable.sh
[root@lab101 ~]# cat /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
*/5 * * * * root /bin/bash /root/update.sh > /dev/null 2>&1

注意上面的是虚拟ip的需要加上-i参数来指定虚拟ip的物理网卡,否则是不行的,下面的MASQUERADE是自己处理的,按这个配置就可以了

还需要动态的去更新脚本

posted @ 2020-09-10 10:54  武汉-磨渣  阅读(2)  评论(0编辑  收藏  举报