├── .gitignore ├── fix.sh ├── iptables_modules_list ├── ko ├── ip6t_MASQUERADE.ko ├── ip6table_mangle.ko ├── ip6table_nat.ko ├── ip6table_raw.ko ├── nf_nat_ipv6.ko └── nf_nat_masquerade_ipv6.ko ├── readme.md ├── readme_ja_jp.md ├── readme_ko_kr.md ├── readme_zh_cn.md └── so ├── libip6t_DNAT.so └── libip6t_MASQUERADE.so /.gitignore: -------------------------------------------------------------------------------- 1 | # General 2 | .DS_Store 3 | .AppleDouble 4 | .LSOverride 5 | 6 | # Icon must end with two \r 7 | Icon 8 | 9 | 10 | # Thumbnails 11 | ._* 12 | 13 | # Files that might appear in the root of a volume 14 | .DocumentRevisions-V100 15 | .fseventsd 16 | .Spotlight-V100 17 | .TemporaryItems 18 | .Trashes 19 | .VolumeIcon.icns 20 | .com.apple.timemachine.donotpresent 21 | 22 | # Directories potentially created on remote AFP share 23 | .AppleDB 24 | .AppleDesktop 25 | Network Trash Folder 26 | Temporary Items 27 | .apdisk -------------------------------------------------------------------------------- /fix.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | FOLDER=$(cd "$(dirname "$0")";pwd) 3 | cp $FOLDER/ko/* /lib/modules/ 4 | cp $FOLDER/so/* /usr/lib/iptables/ 5 | cp $FOLDER/iptables_modules_list /usr/syno/etc.defaults/iptables_modules_list 6 | synoservice --restart pkgctl-Docker -------------------------------------------------------------------------------- /iptables_modules_list: -------------------------------------------------------------------------------- 1 | KERNEL_MODULES_NAT="nf_conntrack.ko nf_defrag_ipv4.ko nf_conntrack_ipv4.ko nf_nat.ko nf_nat_redirect.ko nf_nat_ipv4.ko iptable_nat.ko xt_nat.ko nf_nat_masquerade_ipv4.ko xt_REDIRECT.ko ipt_MASQUERADE.ko" 2 | PPTP_MODULES="arc4.ko ppp_mppe.ko bsd_comp.ko zlib_inflate.ko zlib_deflate.ko ppp_deflate.ko gre.ko pptp.ko" 3 | GEOIP_MODULES="xt_geoip.ko" 4 | KERNEL_MODULES_COMMON="x_tables.ko nf_conntrack.ko xt_multiport.ko xt_tcpudp.ko xt_state.ko xt_limit.ko xt_iprange.ko xt_recent.ko" 5 | PPPOE_MODULES="pppoe.ko n_hdlc.ko ppp_synctty.ko" 6 | OPENVPN_MODULES="tun.ko" 7 | KERNEL_MODULES_CORE="x_tables.ko ip_tables.ko iptable_filter.ko nf_conntrack.ko nf_defrag_ipv4.ko nf_conntrack_ipv4.ko xt_LOG.ko" 8 | TC_6_MODULES="ip6table_mangle.ko" 9 | IPV6_MODULES="x_tables.ko nf_conntrack.ko ip6_tables.ko ip6table_filter.ko nf_defrag_ipv6.ko nf_conntrack_ipv6.ko nf_nat_ipv6.ko nf_nat_masquerade_ipv6.ko ip6t_MASQUERADE.ko ip6table_nat.ko ip6table_raw.ko ip6table_mangle.ko" 10 | L2TP_MODULES="echainiv.ko arc4.ko ppp_mppe.ko bsd_comp.ko zlib_inflate.ko zlib_deflate.ko ppp_deflate.ko udp_tunnel.ko ip6_udp_tunnel.ko l2tp_core.ko l2tp_ppp.ko hmac.ko xfrm_algo.ko xfrm_user.ko af_key.ko xfrm_ipcomp.ko ah4.ko ah6.ko esp4.ko esp6.ko tunnel4.ko tunnel6.ko xfrm4_tunnel.ko xfrm6_tunnel.ko ipcomp.ko ipcomp6.ko authenc.ko authencesn.ko deflate.ko xfrm4_mode_beet.ko xfrm6_mode_beet.ko xfrm4_mode_tunnel.ko xfrm6_mode_tunnel.ko xfrm4_mode_transport.ko xfrm6_mode_transport.ko" 11 | TC_MODULES="iptable_mangle.ko cls_fw.ko cls_u32.ko sch_htb.ko sch_sfq.ko xt_mark.ko" 12 | PPP_MODULES="slhc.ko ppp_generic.ko ppp_async.ko pppox.ko x_tables.ko ip_tables.ko iptable_mangle.ko xt_tcpudp.ko xt_TCPMSS.ko" 13 | -------------------------------------------------------------------------------- /ko/ip6t_MASQUERADE.ko: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangliangliang2/fix_synology_docker_ipv6/a8691207b631195a465520f1f78e7ff3c01e48e2/ko/ip6t_MASQUERADE.ko -------------------------------------------------------------------------------- /ko/ip6table_mangle.ko: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangliangliang2/fix_synology_docker_ipv6/a8691207b631195a465520f1f78e7ff3c01e48e2/ko/ip6table_mangle.ko -------------------------------------------------------------------------------- /ko/ip6table_nat.ko: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangliangliang2/fix_synology_docker_ipv6/a8691207b631195a465520f1f78e7ff3c01e48e2/ko/ip6table_nat.ko -------------------------------------------------------------------------------- /ko/ip6table_raw.ko: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangliangliang2/fix_synology_docker_ipv6/a8691207b631195a465520f1f78e7ff3c01e48e2/ko/ip6table_raw.ko -------------------------------------------------------------------------------- /ko/nf_nat_ipv6.ko: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangliangliang2/fix_synology_docker_ipv6/a8691207b631195a465520f1f78e7ff3c01e48e2/ko/nf_nat_ipv6.ko -------------------------------------------------------------------------------- /ko/nf_nat_masquerade_ipv6.ko: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangliangliang2/fix_synology_docker_ipv6/a8691207b631195a465520f1f78e7ff3c01e48e2/ko/nf_nat_masquerade_ipv6.ko -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # This repo is dedicated to repair synology ipv6 bug when use docker. 2 | 3 | ## import things: 4 | 5 | ```shell 6 | this project only verified in 7 | synology_apollolake_918+ DSM 6.2.3-25426 8 | docker version: 20.10.3-0554 9 | ``` 10 | 11 | #### 1.set docker config file 12 | 13 | ```shell 14 | /var/packages/Docker/etc/dockerd.json 15 | { 16 | "data-root" : "/var/packages/Docker/target/docker", 17 | "log-driver" : "db", 18 | "registry-mirrors" : [], 19 | "storage-driver" : "btrfs", 20 | "ipv6": true, 21 | "fixed-cidr-v6": "fd00::/80", 22 | "experimental": true, 23 | "ip6tables": true, 24 | "userland-proxy": true 25 | } 26 | ``` 27 | 28 | #### 2.run this code 29 | 30 | ```shell 31 | git clone -b master --single-branch https://github.com/wangliangliang2/fix_synology_docker_ipv6.git 32 | cd fix_synology_docker_ipv6 33 | chmod +x fix.sh 34 | ./fix.sh 35 | ``` 36 | 37 | #### 3.ipv6 test 38 | 39 | ```shell 40 | docker run --rm -it busybox ping -6 -c4 ipv6-test.com 41 | ``` 42 | 43 | 44 | 45 | #### In case, if you docker version is 18.09.0-0519, add this manually. 46 | 47 | ```shell 48 | ip6tables -t nat -A POSTROUTING -s fd00::/80 ! -o docker0 -j MASQUERADE 49 | ``` 50 | 51 | #### run docker manually【only use when you want to troubleshot】 52 | 53 | ```shell 54 | /var/packages/Docker/target/usr/bin/dockerd --config-file /var/packages/Docker/etc/dockerd.json 55 | ``` 56 | 57 | #### some import path: 58 | 59 | ```shell 60 | /var/packages/Docker/conf/upstart/pkg-Docker-dockerd.conf 61 | /var/packages/Docker/scripts/start-stop-status 62 | /usr/syno/etc.defaults/iptables_modules_list 63 | ``` 64 | 65 | 66 | 67 | ## PS: if you want to use ddsm modify the start-stop-status file. 68 | 69 | -------------------------------------------------------------------------------- /readme_ja_jp.md: -------------------------------------------------------------------------------- 1 | # このレポはsynologyのdockerがipv6訪問を出来ない問題を直す。 2 | 3 | ## 重要な前提: 4 | 5 | ```shell 6 | このprojectの検証条件は以下です 7 | synology_apollolake_918+ DSM 6.2.3-25426 8 | docker version: 20.10.3-0554 9 | ``` 10 | 11 | #### 1.dockerの配置を変える 12 | 13 | ```shell 14 | /var/packages/Docker/etc/dockerd.json 15 | { 16 | "data-root" : "/var/packages/Docker/target/docker", 17 | "log-driver" : "db", 18 | "registry-mirrors" : [], 19 | "storage-driver" : "btrfs", 20 | "ipv6": true, 21 | "fixed-cidr-v6": "fd00::/80", 22 | "experimental": true, 23 | "ip6tables": true, 24 | "userland-proxy": true 25 | } 26 | ``` 27 | 28 | #### 2.以下のコードをパソコンに入れる 29 | 30 | ```shell 31 | git clone -b master --single-branch https://github.com/wangliangliang2/fix_synology_docker_ipv6.git 32 | cd fix_synology_docker_ipv6 33 | chmod +x fix.sh 34 | ./fix.sh 35 | ``` 36 | 37 | #### 3.ipv6 検証 38 | 39 | ```shell 40 | docker run --rm -it busybox ping -6 -c4 ipv6-test.com 41 | ``` 42 | 43 | 44 | 45 | ### dockerのバーションは18.09.0-0519です,自分で以下のコードをパソコンに入れる: 46 | 47 | ```shell 48 | ip6tables -t nat -A POSTROUTING -s fd00::/80 ! -o docker0 -j MASQUERADE 49 | ``` 50 | 51 | #### 自分でdockerを実行します.【別の問題をおこる時しかしません】 52 | 53 | ```shell 54 | /var/packages/Docker/target/usr/bin/dockerd --config-file /var/packages/Docker/etc/dockerd.json 55 | ``` 56 | 57 | #### 重要なファイル: 58 | 59 | ```shell 60 | /var/packages/Docker/conf/upstart/pkg-Docker-dockerd.conf 61 | /var/packages/Docker/scripts/start-stop-status 62 | /usr/syno/etc.defaults/iptables_modules_list 63 | ``` 64 | 65 | 66 | 67 | ## 別の話:DDSMを実行したいときstart-stop-statusを変える 68 | 69 | -------------------------------------------------------------------------------- /readme_ko_kr.md: -------------------------------------------------------------------------------- 1 | synology docker ipv6을 고치 하겠습니다 2 | ```shell 3 | 그 다음 조건에 확인했습니다 4 | synology_apollolake_918+ DSM 6.2.3-25426 5 | docker version: 20.10.3-0554 6 | ``` 7 | 8 | 먼저 설치 서류에 이렇게 적습니다 9 | ```shell 10 | /var/packages/Docker/etc/dockerd.json 11 | { 12 | "data-root" : "/var/packages/Docker/target/docker", 13 | "log-driver" : "db", 14 | "registry-mirrors" : [], 15 | "storage-driver" : "btrfs", 16 | "ipv6": true, 17 | "fixed-cidr-v6": "fd00::/80", 18 | "experimental": true, 19 | "ip6tables": true, 20 | "userland-proxy": true 21 | } 22 | ``` 23 | 24 | 그 다음에 이렇게 합니다 25 | ```shell 26 | git clone -b master --single-branch https://github.com/wangliangliang2/fix_synology_docker_ipv6.git 27 | cd fix_synology_docker_ipv6 28 | chmod +x fix.sh 29 | ./fix.sh 30 | ``` 31 | 32 | 마지막 이렇게 확인합니다 33 | ```shell 34 | docker run --rm -it busybox ping -6 -c4 ipv6-test.com 35 | ``` 36 | -------------------------------------------------------------------------------- /readme_zh_cn.md: -------------------------------------------------------------------------------- 1 | # 这个repo用于修复群晖docker的ipv6不能访问问题。 2 | 3 | ## 重要提示: 4 | 5 | ```shell 6 | 该项目只在以下条件下验证了 7 | synology_apollolake_918+ DSM 6.2.3-25426 8 | docker version: 20.10.3-0554 9 | ``` 10 | 11 | #### 1.修改docker的配置文件 12 | 13 | ```shell 14 | /var/packages/Docker/etc/dockerd.json 15 | { 16 | "data-root" : "/var/packages/Docker/target/docker", 17 | "log-driver" : "db", 18 | "registry-mirrors" : [], 19 | "storage-driver" : "btrfs", 20 | "ipv6": true, 21 | "fixed-cidr-v6": "fd00::/80", 22 | "experimental": true, 23 | "ip6tables": true, 24 | "userland-proxy": true 25 | } 26 | ``` 27 | 28 | #### 2.执行以下代码 29 | 30 | ```shell 31 | git clone -b master --single-branch https://github.com/wangliangliang2/fix_synology_docker_ipv6.git 32 | cd fix_synology_docker_ipv6 33 | chmod +x fix.sh 34 | ./fix.sh 35 | ``` 36 | 37 | #### 3.ipv6 测试 38 | 39 | ```shell 40 | docker run --rm -it busybox ping -6 -c4 ipv6-test.com 41 | ``` 42 | 43 | 44 | 45 | ### 如果你的docker版本为18.09.0-0519,手动添加: 46 | 47 | ```shell 48 | ip6tables -t nat -A POSTROUTING -s fd00::/80 ! -o docker0 -j MASQUERADE 49 | ``` 50 | 51 | #### 手动运行docker【当出问题时,docker正常时别用】 52 | 53 | ```shell 54 | /var/packages/Docker/target/usr/bin/dockerd --config-file /var/packages/Docker/etc/dockerd.json 55 | ``` 56 | 57 | #### 一些重要文件路径: 58 | 59 | ```shell 60 | /var/packages/Docker/conf/upstart/pkg-Docker-dockerd.conf 61 | /var/packages/Docker/scripts/start-stop-status 62 | /usr/syno/etc.defaults/iptables_modules_list 63 | ``` 64 | 65 | 66 | 67 | ## 附注:如果你想运行DDSM那么修改start-stop-status文件 68 | 69 | -------------------------------------------------------------------------------- /so/libip6t_DNAT.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangliangliang2/fix_synology_docker_ipv6/a8691207b631195a465520f1f78e7ff3c01e48e2/so/libip6t_DNAT.so -------------------------------------------------------------------------------- /so/libip6t_MASQUERADE.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangliangliang2/fix_synology_docker_ipv6/a8691207b631195a465520f1f78e7ff3c01e48e2/so/libip6t_MASQUERADE.so --------------------------------------------------------------------------------