TwoYellowGuns 2025-03-10 19:12 采纳率: 25%
浏览 8
已结题

关于内网穿透的配置问题

关于内网穿透如何配置?
目前的情况,家庭内网中有一台nas,在nas中有一个虚拟机,并且创建了一个centos系统,centos系统里面有mysql、redis等应用。
我想要通过ssh访问这个centos系统,并且在外网能够访问系统里面的mysql、redis应用。
网络情况:有公网IP,没有开通ipv6
这种情况应该如何配置,我试了很久都没成功

  • 写回答

3条回答 默认 最新

  • 宝码香车 优质创作者: JavaScript技术领域 2025-03-10 19:28
    关注
    让【宝码香车】来帮你解答,本回答参考DeepSeek编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
    如果答案让您满意,请采纳、关注,非常感谢!

    要实现通过外网访问家庭内网中的CentOS系统及其内部的MySQL、Redis等应用,你可以通过以下步骤进行配置。由于你有公网IP,但没有IPv6,我们可以通过端口映射和内网穿透技术来实现。

    1. 确保NAS和虚拟机网络配置正确

    首先,确保你的NAS和虚拟机网络配置正确,虚拟机能够通过内网访问NAS,并且NAS能够通过公网IP访问外网。

    2. 配置路由器端口转发

    由于你有公网IP,可以通过在路由器上配置端口转发来实现外网访问内网服务。

    步骤:

    1. 登录路由器管理界面:通常通过浏览器访问路由器的IP地址(如 192.168.1.1)来登录。

    2. 找到端口转发(Port Forwarding)设置:不同路由器的界面可能不同,通常在“高级设置”或“NAT设置”中。

    3. 添加端口转发规则

      • 外部端口:选择一个外部端口(如 2222 用于SSH,3306 用于MySQL,6379 用于Redis)。
      • 内部IP地址:填写NAS的内网IP地址。
      • 内部端口:填写虚拟机中CentOS系统的对应服务端口(如 22 用于SSH,3306 用于MySQL,6379 用于Redis)。
      • 协议:选择TCP(或TCP/UDP)。

      例如:

      • SSH:外部端口 2222 -> 内部IP 192.168.1.100,内部端口 22
      • MySQL:外部端口 3306 -> 内部IP 192.168.1.100,内部端口 3306
      • Redis:外部端口 6379 -> 内部IP 192.168.1.100,内部端口 6379
    4. 保存并应用设置

    3. 配置CentOS系统的防火墙

    确保CentOS系统的防火墙允许外部访问这些端口。

    步骤:

    1. 检查防火墙状态
      sudo systemctl status firewalld
      
    2. 开放端口
      sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
      sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
      sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
      
    3. 重启防火墙
      sudo firewall-cmd --reload
      

    4. 配置MySQL和Redis的访问权限

    确保MySQL和Redis允许外部访问。

    MySQL配置:

    1. 编辑MySQL配置文件
      sudo vi /etc/my.cnf
      
      找到 bind-address 并将其改为 0.0.0.0
      bind-address = 0.0.0.0
      
    2. 重启MySQL服务
      sudo systemctl restart mysqld
      

    Redis配置:

    1. 编辑Redis配置文件
      sudo vi /etc/redis.conf
      
      找到 bind 127.0.0.1 并将其改为 bind 0.0.0.0
      bind 0.0.0.0
      
    2. 重启Redis服务
      sudo systemctl restart redis
      

    5. 测试外网访问

    现在你可以通过公网IP和配置的外部端口访问这些服务。

    SSH访问:

    ssh -p 2222 username@your_public_ip
    

    MySQL访问:

    mysql -h your_public_ip -P 3306 -u username -p
    

    Redis访问:

    redis-cli -h your_public_ip -p 6379
    

    6. 安全性考虑

    • 使用强密码:确保所有服务的密码足够强。
    • 限制访问IP:如果可能,限制访问IP范围。
    • 使用VPN:考虑使用VPN来增强安全性,避免直接暴露服务到公网。

    7. 其他注意事项

    • 动态公网IP:如果你的公网IP是动态的,可以考虑使用DDNS(动态域名解析)服务来绑定一个域名。
    • NAS防火墙:确保NAS的防火墙也允许这些端口的流量通过。

    通过以上步骤,你应该能够成功配置内网穿透,并通过外网访问家庭内网中的CentOS系统及其内部的MySQL、Redis等应用。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月6日
  • 已采纳回答 3月6日
  • 创建了问题 3月10日