āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ IPIP āĻŸāĻžāĻ¨ā§‡āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¸āĻšāĻœ UDP āĻšā§‹āĻ˛ āĻĒāĻžāĻžā§āĻšāĻŋāĻ‚

āĻĻāĻŋāĻ¨ āĻ­āĻžāĻ˛ āĻ¸āĻŽāĻ¯āĻŧ!

āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡ āĻ†āĻŽāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŦāĻ˛āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ†āĻŽāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°ā§‡āĻ›āĻŋ (āĻ†āĻ°ā§‹ āĻāĻ•āĻŸāĻž) āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ‰āĻŦā§āĻ¨ā§āĻŸā§/āĻĄā§‡āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻ“āĻāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ UDP āĻšā§‹āĻ˛ āĻĒāĻžāĻžā§āĻšāĻŋāĻ‚ āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ NAT āĻāĻ° āĻĒāĻŋāĻ›āĻ¨ā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĻā§āĻŸāĻŋ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°āĻ•ā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ¯āĻžāĻļ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĨ¤

āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§‡ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ§āĻžāĻĒ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡:

  1. āĻāĻ•āĻŸāĻŋ āĻ¨ā§‹āĻĄ āĻļā§āĻ°ā§ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ¨ā§‹āĻĄ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž;
  2. āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• IP āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻāĻŦāĻ‚ UDP āĻĒā§‹āĻ°ā§āĻŸ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ;
  3. āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻšā§‹āĻ¸ā§āĻŸā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻšāĻŋāĻ°āĻžāĻ—āĻ¤ IP āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻāĻŦāĻ‚ UDP āĻĒā§‹āĻ°ā§āĻŸ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻž;
  4. āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻšā§‹āĻ¸ā§āĻŸ āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻšāĻŋāĻ°āĻžāĻ—āĻ¤ āĻ†āĻ‡āĻĒāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻāĻŦāĻ‚ UDP āĻĒā§‹āĻ°ā§āĻŸ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ•āĻ°āĻž;
  5. āĻāĻ•āĻŸāĻŋ āĻ†āĻ‡āĻĒāĻŋāĻ†āĻ‡āĻĒāĻŋ āĻŸāĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻ¸āĻ‚āĻ—āĻ āĻ¨;
  6. āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ;
  7. āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻšāĻžāĻ°āĻŋāĻ¯āĻŧā§‡ āĻ—ā§‡āĻ˛ā§‡, IPIP āĻŸāĻžāĻ¨ā§‡āĻ˛āĻŸāĻŋ āĻŽā§āĻ›ā§āĻ¨āĨ¤

āĻ†āĻŽāĻŋ āĻĻā§€āĻ°ā§āĻ˜ āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ­ā§‡āĻŦā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ āĻāĻŦāĻ‚ āĻāĻ–āĻ¨āĻ“ āĻŽāĻ¨ā§‡ āĻ•āĻ°āĻŋ āĻ¨ā§‹āĻĄāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĄā§‡āĻŸāĻž āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ āĻ•ā§€ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻāĻ‡ āĻŽā§āĻšā§‚āĻ°ā§āĻ¤ā§‡ āĻ†āĻŽāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻšāĻœ āĻāĻŦāĻ‚ āĻĻā§āĻ°ā§āĻ¤āĻ¤āĻŽ āĻ•āĻžāĻœāĻŸāĻŋ Yandex.disk āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ›ā§‡āĨ¤

  • āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¸āĻšāĻœ - āĻ†āĻĒāĻ¨āĻžāĻ° 3āĻŸāĻŋ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĻāĻ°āĻ•āĻžāĻ°: āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨, āĻĒāĻĄāĻŧā§āĻ¨, āĻŽā§āĻ›ā§āĻ¨āĨ¤ āĻ•āĻžāĻ°ā§āĻ˛ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻŸāĻŋ āĻšāĻ˛:
    āĻ¸ā§ƒāĻˇā§āĻŸāĻŋ:

    curl -s -X MKCOL --user "$usename:$password" https://webdav.yandex.ru/$folder

    āĻĒāĻĄāĻŧā§āĻ¨:

    curl -s --user "$usename:$password" -X PROPFIND -H "Depth: 1" https://webdav.yandex.ru/$folder

    āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻž:

    curl -s -X DELETE --user "$usename:$password" https://webdav.yandex.ru/$folder
  • āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧāĻ¤, āĻāĻŸāĻŋ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻ¸āĻšāĻœ:
    apt install curl

āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ• IP āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻāĻŦāĻ‚ UDP āĻĒā§‹āĻ°ā§āĻŸ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡, stun-client āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨:

stun stun.sipnet.ru -v -p $1 2>&1 | grep "MappedAddress"

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ¸āĻš āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨:

apt install stun-client

āĻāĻ•āĻŸāĻŋ āĻŸāĻžāĻ¨ā§‡āĻ˛ āĻ¸āĻ‚āĻ—āĻ āĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡, iproute2 āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻĨā§‡āĻ•ā§‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ OS āĻŸā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ…āĻ¨ā§‡āĻ• āĻŸāĻžāĻ¨ā§‡āĻ˛ āĻ¯āĻž āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ‰āĻĒāĻžāĻ¯āĻŧ (L2TPv3, GRE, āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ‰āĻ¤ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻŋ IPIP āĻŦā§‡āĻ›ā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ āĻ•āĻžāĻ°āĻŖ āĻāĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ˛ā§‹āĻĄ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤ āĻ†āĻŽāĻŋ UDP-āĻāĻ° āĻ‰āĻĒāĻ° L2TPv3 āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§‡āĻ›āĻŋ āĻāĻŦāĻ‚ āĻšāĻ¤āĻžāĻļ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋ, āĻ—āĻ¤āĻŋ 10 āĻŦāĻžāĻ° āĻ•āĻŽā§‡āĻ›ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻ•āĻžāĻ°ā§€ āĻŦāĻž āĻ…āĻ¨ā§āĻ¯ āĻ•āĻŋāĻ›ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻŦāĻŋāĻ§āĻŋāĻ¨āĻŋāĻˇā§‡āĻ§ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ¯ā§‡āĻšā§‡āĻ¤ā§ IPIP āĻŸāĻžāĻ¨ā§‡āĻ˛ IP āĻ¸ā§āĻ¤āĻ°ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻ¤āĻžāĻ‡ FOU āĻŸāĻžāĻ¨ā§‡āĻ˛ UDP āĻĒā§‹āĻ°ā§āĻŸ āĻ¸ā§āĻ¤āĻ°ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ•āĻŸāĻŋ IPIP āĻŸāĻžāĻ¨ā§‡āĻ˛ āĻ¸āĻ‚āĻ—āĻ āĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨:

- FOU āĻŽāĻĄāĻŋāĻ‰āĻ˛ āĻ˛ā§‹āĻĄ āĻ•āĻ°ā§āĻ¨:

modprobe fou

- āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻĒā§‹āĻ°ā§āĻŸ āĻļā§āĻ¨ā§āĻ¨:

ip fou add port $localport ipproto 4

- āĻāĻ•āĻŸāĻŋ āĻŸāĻžāĻ¨ā§‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨:

ip link add name fou$name type ipip remote $remoteip local $localip encap fou  encap-sport $localport encap-dport $remoteport

- āĻŸāĻžāĻ¨ā§‡āĻ˛ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻŦāĻžāĻĄāĻŧāĻžāĻ¨:

ip link set up dev fou$name

— āĻŸāĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ IP āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ•āĻ°ā§āĻ¨:

ip addr add $intIP peer $peerip dev fou$name

āĻāĻ•āĻŸāĻŋ āĻŸāĻžāĻ¨ā§‡āĻ˛ āĻŽā§āĻ›ā§āĻ¨:

ip link del dev fou$name

ip fou del port $localport

āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ¸āĻš āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ¨ā§‹āĻĄ āĻŸāĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻ†āĻ‡āĻĒāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻŸāĻŋ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻ•ā§āĻ°āĻŽā§‡ āĻĒāĻŋāĻ‚ āĻ•āĻ°ā§‡ āĻŸāĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ:

ping -c 1 $peerip -s 0

āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛āĻŸāĻŋ āĻŦāĻœāĻžāĻ¯āĻŧ āĻ°āĻžāĻ–āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻ•ā§āĻ°āĻŽāĻŋāĻ• āĻĒāĻŋāĻ‚ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨, āĻ…āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ, āĻ¯āĻ–āĻ¨ āĻŸāĻžāĻ¨ā§‡āĻ˛āĻŸāĻŋ āĻ¨āĻŋāĻˇā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻ•ā§‡, āĻ¤āĻ–āĻ¨ āĻ°āĻžāĻ‰āĻŸāĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° NAT āĻŸā§‡āĻŦāĻŋāĻ˛āĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻĢ āĻšāĻ¯āĻŧā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ—āĻŸāĻŋ āĻ­ā§‡āĻ™ā§‡ āĻ¯āĻžāĻŦā§‡ā§ˇ

āĻ¯āĻĻāĻŋ āĻĒāĻŋāĻ‚ āĻ…āĻĻā§ƒāĻļā§āĻ¯ āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ IPIP āĻŸāĻžāĻ¨ā§‡āĻ˛āĻŸāĻŋ āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻšā§‹āĻ¸ā§āĻŸ āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡āĨ¤

āĻ†āĻ¸āĻ˛ā§‡ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ¨āĻŋāĻœā§‡āĻ‡:

#!/bin/bash
username="[email protected]"
password="password"
folder="vpnid"
intip="10.0.0.1"
localport=`shuf -i 10000-65000 -n 1`
cid=`shuf -i 10000-99999 -n 1`
tid=`shuf -i 10-99 -n 1`
function yaread {
        curl -s --user "$1:$2" -X PROPFIND -H "Depth: 1" https://webdav.yandex.ru/$3 | sed 's/></>n</g' | grep "displayname" | sed 's/<d:displayname>//g' | sed 's/</d:displayname>//g' | grep -v $3 | grep -v $4 | sort -r
}
function yacreate {
        curl -s -X MKCOL --user "$1:$2" https://webdav.yandex.ru/$3
}
function yadelete {
        curl -s -X DELETE --user "$1:$2" https://webdav.yandex.ru/$3
}
function myipport {
        stun stun.sipnet.ru -v -p $1 2>&1 | grep "MappedAddress" | sort | uniq | awk '{print $3}' | head -n1
}
function tunnel-up {
	modprobe fou
	ip fou add port $4 ipproto 4
	ip link add name fou$7 type ipip remote $1 local $3 encap fou encap-sport $4 encap-dport $2
	ip link set up dev fou$7
	ip addr add $6 peer $5 dev fou$7
}
function tunnel-check {
	sleep 10
        pings=0
        until [[ $pings == 4 ]]; do
                if ping -c 1 $1 -s 0 &>/dev/null;
                        then    echo -n .; n=0
                        else    echo -n !; ((pings++))
                fi
		sleep 15
        done
}
function tunnel-down {
	ip link del dev fou$1
	ip fou del port $2
}
trap 'echo -e "nDisconnecting..." && yadelete $username $password $folder; tunnel-down $tunnelid $localport; echo "IPIP tunnel disconnected!"; exit 1' 1 2 3 8 9 14 15
until [[ -n $end ]]; do
    yacreate $username $password $folder
    until [[ -n $ip ]]; do
        mydate=`date +%s`
        timeout="60"
        list=`yaread $username $password $folder $cid | head -n1`
        yacreate $username $password $folder/$mydate:$cid
        for l in $list; do
                if [ `echo $l | sed 's/:/ /g' | awk {'print $1'}` -ge $(($mydate-65)) ]; then
			#echo $list
                        myipport=`myipport $localport`
                        yacreate $username $password $folder/$mydate:$cid:$myipport:$intip:$tid
                        timeout=$(( $timeout + `echo $l | sed 's/:/ /g' | awk {'print $1'}` - $mydate + 3 ))
                        ip=`echo $l | sed 's/:/ /g' | awk '{print $3}'`
                        port=`echo $l | sed 's/:/ /g' | awk '{print $4}'`
                        peerip=`echo $l | sed 's/:/ /g' | awk '{print $5}'`
			peerid=`echo $l | sed 's/:/ /g' | awk '{print $6}'`
			if [[ -n $peerid ]]; then tunnelid=$(($peerid*$tid)); fi
                fi
        done
        if ( [[ -z "$ip" ]] && [ "$timeout" -gt 0 ] ) ; then
                echo -n "!"
                sleep $timeout
        fi
    done
    localip=`ip route get $ip | head -n1 | sed 's|.*src ||' | cut -d' ' -f1`
    tunnel-up $ip $port $localip $localport $peerip $intip $tunnelid
    tunnel-check $peerip
    tunnel-down $tunnelid $localport
    yadelete $username $password $folder
    unset ip port myipport
done
exit 0

āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ¨āĻžāĻŽ, āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ и āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°ā§‡āĻ° āĻ‰āĻ­āĻ¯āĻŧ āĻĒāĻ•ā§āĻˇā§‡āĻ° āĻāĻ•āĻ‡ āĻšāĻ¤ā§‡ āĻšāĻŦā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ‰āĻāĻ•āĻŋ - āĻ­āĻŋāĻ¨ā§āĻ¨, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ: 10.0.0.1 āĻāĻŦāĻ‚ 10.0.0.2āĨ¤ āĻ¨ā§‹āĻĄā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ‡āĻœ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ‡ āĻŽāĻ¤ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

nohup script.sh &

āĻ†āĻŽāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĻā§ƒāĻˇā§āĻŸāĻŋ āĻ†āĻ•āĻ°ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ¯ā§‡ āĻ†āĻ‡āĻĒāĻŋāĻ†āĻ‡āĻĒāĻŋ āĻŸāĻžāĻ¨ā§‡āĻ˛āĻŸāĻŋ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻāĻ¨āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ āĻāĻŽāĻ¨ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻ•ā§‹āĻŖ āĻĨā§‡āĻ•ā§‡ āĻ…āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ†āĻ‡āĻĒāĻŋāĻ¸ā§‡āĻ• āĻ“āĻ­āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¸āĻšāĻœā§‡āĻ‡ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ, āĻāĻŸāĻž āĻ†āĻŽāĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻ¸āĻšāĻœ āĻāĻŦāĻ‚ āĻŦā§‹āĻ§āĻ—āĻŽā§āĻ¯ āĻŦāĻ˛ā§‡ āĻŽāĻ¨ā§‡ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤

āĻ†āĻŽāĻŋ āĻāĻ–āĻ¨ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ• āĻ¸āĻĒā§āĻ¤āĻžāĻš āĻ§āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻœā§‡āĻ° āĻĒāĻŋāĻ¸āĻŋāĻ¤ā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻāĻ‡ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ›āĻŋ āĻāĻŦāĻ‚ āĻ•ā§‹āĻ¨ā§‹ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°āĻŋāĻ¨āĻŋāĨ¤ āĻāĻŸāĻŋ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ­ā§āĻ˛ā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ•āĨ¤

āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻ†āĻĒāĻ¨āĻžāĻ° āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻāĻŦāĻ‚ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĨāĻžāĻ•āĻŦā§‡, āĻ†āĻŽāĻŋ āĻļā§āĻ¨āĻ¤ā§‡ āĻ–ā§āĻļāĻŋ āĻšāĻŦāĨ¤

āĻ†āĻĒāĻ¨āĻžāĻ° āĻŽāĻ¨ā§‹āĻ¯ā§‹āĻ—ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ!

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨