FastDFS 提供外网访问(Socket 上传下载)

FastDFS 提供外网访问(Socket 上传下载)

系统环境

系统版本: CentOS 7.5
客户端(办公环境本地): 9.9.9.9
Nginx(用于映射 FastDFS 端口), 内网: 172.17.10.98(eth1) 公网:8.8.8.8(eth0)(测试IP)
Tracer: 172.17.10.24:22122
Storage1: 172.17.10.23:23000  Nginx: 8888
Storage2: 172.17.10.22:23001  Nginx: 8889
Storage3: 172.17.10.21:23002  Nginx: 8890

简介

测试环境(云服务器)的 FastDFS 需要提供办公环境访问,FastDFS 客户端上传文件是通过 Tracer 提供的 Storage 地址来连接上传的,所以说如果 FastDFS Storage 通过内网连接到 Tracer 注册的话那么只映射 FastDFS Tracer 地址,Tracer 将会把注册上来的 Storage 地址发送给客户端,然而在办公环境无法连接内网(也就是 Storage),那么文件将上载失败。利用这一原理,我们可以这么做,Storage 连接 Tracer 的时候将源 IP 修改为公网地址的IP地址那么这样就意味着 Tracer 就会把这个公网地址下发给客户端连接,然后这个地址上在做 Storage 的映射,也就是为什么我们的 Storage 端口都不一样的原因了否则你必须有足够的公网IP来解决这个问题。

Nginx(172.17.10.98) 配置

由于有 白名单限制(iptables filter INPUT) 除了 Tracer 端口之外,其他端口通过 Nginx 转发,TCP 转发配置请自行百度

Iptables 添加如下规则:
    iptables -t nat -A PREROUTING -p tcp -m tcp --dport 22122 -s 8.8.8.8,9.9.9.9,172.17.0.0/16 -j DNAT --to 172.17.10.24:22122
    iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 22122 -d 172.17.10.24 -j SNAT --to 8.8.8.8    # 注意这里 --to 8.8.8.8 而不是内网地址
    iptables -t nat -A POSTROUTING -s 172.17.0.0/16 -o eth0 -j SNAT --to 8.8.8.8

需要注意的是 iptables filter FORWARD 需要允许通过以及需要打开路由功能 echo 1 > /proc/sys/net/ipv4/ip_forward(此项最好修改 /etc/sysctl.conf)

Tracer 配置

Tracer 服务器需要注意的是路由必须走 172.17.10.98
route add default gw 172.17.10.98

Storage 可走可不走此网关

启动 Tracer

Storage 配置

需要注意端口

修改这两个配置文件 mod_fastdfs.conf   tracker.conf
tracker_server=8.8.8.8:22122     # 改为公网地址

启动 Storage

查看监控

/opt/fastdfs/bin/fdfs_monitor /opt/fastdfs/client.conf    # 可以看到监控中的 ip_addr 已经为公网 IP 了

/opt/fastdfs/client.conf:
    connect_timeout=30
    network_timeout=60
    base_path=/data/fastdfs_pay/tracker
    tracker_server=8.8.8.8:22122
    log_level=info
    use_connection_pool = false
    connection_pool_max_idle_time = 3600
    load_fdfs_parameters_from_tracker=false
    use_storage_id = false
    storage_ids_filename = storage_ids.conf
    http.tracker_server_port=80

客户端测试上传

/opt/fastdfs/bin/fdfs_upload_file /opt/fastdfs/client.conf /tmp/abc.txt
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值