рдбреЗрдмрд┐рдпрди 10 рд╕рд╣ рд▓реЕрдкрдЯреЙрдкрд╡рд░ рд╕реЙрдХреНрд╕рдордзреНрдпреЗ рд░рд╛рдЙрдЯрд░ рддрдпрд╛рд░ рдХрд░рдгреЗ

рд╕рдВрдкреВрд░реНрдг рд╡рд░реНрд╖рд╛рд╕рд╛рдареА (рдХрд┐рдВрд╡рд╛ рджреЛрди) рдореА рдореБрдЦреНрдп рдХрд╛рд░рдгрд╛рд╕реНрддрд╡ рд╣рд╛ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреЗ рдерд╛рдВрдмрд╡рд▓реЗ - рдореА рдЖрдзреАрдЪ рджреЛрди рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реЗ рд╣реЛрддреЗ рдЬреНрдпрд╛рдд рдореА рдбреЗрдмрд┐рдпрдирд╕рд╣ рдЕрдЧрджреА рд╕рд╛рдорд╛рдиреНрдп рд▓реЕрдкрдЯреЙрдкрд╡рд░реВрди рд╕реЙрдХреНрд╕рдордзреНрдпреЗ рд░рд╛рдЙрдЯрд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рд╣реЛрддреЗ.

рддрдерд╛рдкрд┐, рддреЗрд╡реНрд╣рд╛рдкрд╛рд╕реВрди рдбреЗрдмрд┐рдпрдирдЪреА рд╕реНрдерд┐рд░ рдЖрд╡реГрддреНрддреА рдмрд╕реНрдЯрд░рд╡рд░ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, рдкреБрд░реЗрд╢рд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рд▓реЛрдХрд╛рдВрдиреА рдорд╛рдЭреНрдпрд╛рд╢реА рдЦрд╛рдЬрдЧреАрд░рд┐рддреНрдпрд╛ рд╕реЗрдЯрдЕрдкрд╕рд╛рдареА рдорджрддреАрд╕рд╛рдареА рд╕рдВрдкрд░реНрдХ рд╕рд╛рдзрд▓рд╛ рдЖрд╣реЗ, рдпрд╛рдЪрд╛ рдЕрд░реНрде рдорд╛рдЭреЗ рдорд╛рдЧреАрд▓ рд▓реЗрдЦ рд╕рдВрдкреВрд░реНрдг рдирд╛рд╣реАрдд. рдмрд░рдВ, рдореА рд╕реНрд╡рддрдГ рдЕрд╕рд╛ рдЕрдВрджрд╛рдЬ рд▓рд╛рд╡рд▓рд╛ рдЖрд╣реЗ рдХреА рддреНрдпрд╛рдордзреНрдпреЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкрджреНрдзрддреА SOCKS рдордзреНрдпреЗ рд░рд╛рдЙрдЯрд┐рдВрдЧрд╕рд╛рдареА Linux рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рд░реНрд╡ рдЧреБрдВрддрд╛рдЧреБрдВрдд рдкреВрд░реНрдгрдкрдгреЗ рдкреНрд░рдХрдЯ рдХрд░рдд рдирд╛рд╣реАрдд. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рддреЗ рдбреЗрдмрд┐рдпрди рд╕реНрдЯреНрд░реЗрдЪрд╕рд╛рдареА рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдЖрд╣реЗрдд, рдЖрдгрд┐ рдмрд╕реНрдЯрд░рд╡рд░ рдЕрдкрдЧреНрд░реЗрдб рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, systemd init рдкреНрд░рдгрд╛рд▓реАрдордзреНрдпреЗ, рдорд▓рд╛ рд╕реЗрд╡рд╛рдВрдЪреНрдпрд╛ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджрд╛рдд рд▓рд╣рд╛рди рдмрджрд▓ рд▓рдХреНрд╖рд╛рдд рдЖрд▓реЗ. рдЖрдгрд┐ рд╕реНрд╡рддрдГ рд▓реЗрдЦрд╛рдВрдордзреНрдпреЗ, рдореА systemd-networkd рд╡рд╛рдкрд░рд▓рд╛ рдирд╛рд╣реА, рдЬрд░реА рддреЗ рдЬрдЯрд┐рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╕рд╛рдареА рд╕рд░реНрд╡рд╛рдд рдпреЛрдЧреНрдп рдЖрд╣реЗ.

рд╡рд░реАрд▓ рдмрджрд▓рд╛рдВрд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЦрд╛рд▓реАрд▓ рд╕реЗрд╡рд╛ рдорд╛рдЭреНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ рдЬреЛрдбрд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд: рд╣реЛрд╕реНрдЯреЕрдкрдбреА - рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреВ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рдирд╕рд╛рдареА рд╕реЗрд╡рд╛, рдПрдирдЯреАрдкреА рд╕реНрдерд╛рдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреНрд▓рд╛рдпрдВрдЯрдЪрд╛ рд╡реЗрд│ рд╕рдордХреНрд░рдорд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, dnscrypt-рдкреНрд░реЙрдХреНрд╕реА DNS рджреНрд╡рд╛рд░реЗ рдХрдиреЗрдХреНрд╢рди рдПрдирдХреНрд░рд┐рдкреНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╕реНрдерд╛рдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреНрд▓рд╛рдпрдВрдЯрд╡рд░реАрд▓ рдЬрд╛рд╣рд┐рд░рд╛рддреА рдЕрдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдгрд┐ рдореА рдЖрдзреА рд╕рд╛рдВрдЧрд┐рддрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, systemd-networkd рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА.

рдЕрд╢рд╛ рд░рд╛рдЙрдЯрд░рдЪреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рд╕рдВрд░рдЪрдиреЗрдЪрд╛ рдПрдХ рд╕рд╛рдзрд╛ рдмреНрд▓реЙрдХ рдЖрдХреГрддреА рдпреЗрдереЗ рдЖрд╣реЗ.

рдбреЗрдмрд┐рдпрди 10 рд╕рд╣ рд▓реЕрдкрдЯреЙрдкрд╡рд░ рд╕реЙрдХреНрд╕рдордзреНрдпреЗ рд░рд╛рдЙрдЯрд░ рддрдпрд╛рд░ рдХрд░рдгреЗ

рддрд░, рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдард╡рдг рдХрд░реВрди рджреЗрддреЛ рдХреА рдпрд╛ рд▓реЗрдЦрд╛рдВрдЪреНрдпрд╛ рдорд╛рд▓рд┐рдХреЗрдЪреА рдЙрджреНрджрд┐рд╖реНрдЯреЗ рдХрд╛рдп рдЖрд╣реЗрдд:

  1. рд╕рд░реНрд╡ OS рдХрдиреЗрдХреНрд╢рдиреНрд╕ SOCKS рд╡рд░ рд░реВрдЯ рдХрд░рд╛, рддрд╕реЗрдЪ рд▓реЕрдкрдЯреЙрдкрдЪреНрдпрд╛ рд╕рдорд╛рди рдиреЗрдЯрд╡рд░реНрдХрд╡рд░реАрд▓ рд╕рд░реНрд╡ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕рд╡рд░реАрд▓ рдХрдиреЗрдХреНрд╢рди.
  2. рдорд╛рдЭреНрдпрд╛ рдмрд╛рдмрддреАрдд рд▓реЕрдкрдЯреЙрдк рдкреВрд░реНрдгрдкрдгреЗ рдореЛрдмрд╛рдИрд▓ рд░рд╛рд╣рд┐рд▓рд╛ рдкрд╛рд╣рд┐рдЬреЗ. рдореНрд╣рдгрдЬреЗрдЪ, рдбреЗрд╕реНрдХрдЯреЙрдк рд╡рд╛рддрд╛рд╡рд░рдг рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╕рдВрдзреА рджреЗрдгреЗ рдЖрдгрд┐ рднреМрддрд┐рдХ рд╕реНрдерд╛рдирд╛рд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ рдирд╛рд╣реА.
  3. рд╢реЗрд╡рдЯрдЪрд╛ рдореБрджреНрджрд╛ рдХреЗрд╡рд│ рдЕрдВрдЧрднреВрдд рд╡рд╛рдпрд░рд▓реЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕рджреНрд╡рд╛рд░реЗ рдХрдиреЗрдХреНрд╢рди рдЖрдгрд┐ рд░рд╛рдЙрдЯрд┐рдВрдЧ рд╕реВрдЪрд┐рдд рдХрд░рддреЛ.
  4. рдмрд░рдВ, рдЖрдгрд┐ рдЕрд░реНрдерд╛рддрдЪ, рдПрдХ рд╕рд░реНрд╡рд╕рдорд╛рд╡реЗрд╢рдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рддрдпрд╛рд░ рдХрд░рдгреЗ, рддрд╕реЗрдЪ рдорд╛рдЭреНрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рдирд╛рдкреНрд░рдорд╛рдгреЗ рд╕рдВрдмрдВрдзрд┐рдд рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг.

рдпрд╛ рд▓реЗрдЦрд╛рдд рдХрд╛рдп рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЬрд╛рдИрд▓:

  1. рдЬрд╛ - рдкреНрд░рдХрд▓реНрдк рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛ tun2 рд╕реЙрдХреНрд╕TCP рдЯреНрд░реЕрдлрд┐рдХ SOCKS рд╡рд░ рд░реВрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЖрдгрд┐ рддрдпрд╛рд░ рдХрд░рд╛_рдЕреЕрдк тАФ рд╡рд╛рдкрд░реВрди рдЖрднрд╛рд╕реА рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреВрдЪреЗ рд╕реЗрдЯрдЕрдк рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрд╕реНрдЯреЕрдкрдбреА.
  2. tun2 рд╕реЙрдХреНрд╕ тАФ рд╕рд┐рд╕реНрдЯрдорд╡рд░ systemd рд╕реЗрд╡рд╛ рддрдпрд╛рд░ рдХрд░рд╛ рдЖрдгрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛.
  3. systemd-networkd тАФ рд╡рд╛рдпрд░рд▓реЗрд╕ рдЖрдгрд┐ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдЗрдВрдЯрд░рдлреЗрд╕, рд╕реНрдЯреЕрдЯрд┐рдХ рд░реВрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓реНрд╕ рдЖрдгрд┐ рдкреЕрдХреЗрдЯ рд░реАрдбрд╛рдпрд░реЗрдХреНрд╢рди рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рд╛.
  4. рддрдпрд╛рд░ рдХрд░рд╛_рдЕреЕрдк тАФ рд╕рд┐рд╕реНрдЯрдорд╡рд░ systemd рд╕реЗрд╡рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛, рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рд╛ рдЖрдгрд┐ рдЖрднрд╛рд╕реА рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреВ рд╕реБрд░реВ рдХрд░рд╛.

рдкрд░реНрдпрд╛рдпреА рдкрд╛рдпрд▒реНрдпрд╛:

  • рдПрдирдЯреАрдкреА тАФ рд╡рд░реНрдЪреНрдпреБрдЕрд▓ рдНрдХреНрд╕реЗрд╕ рдкреЙрдЗрдВрдЯ рдХреНрд▓рд╛рдпрдВрдЯрд╡рд░ рд╡реЗрд│ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡реНрд╣рд░ рд╕реНрдерд╛рдкрд┐рдд рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рд╛.
  • dnscrypt-рдкреНрд░реЙрдХреНрд╕реА тАФ рдЖрдореНрд╣реА DNS рд╡рд┐рдирдВрддреНрдпрд╛ рдХреВрдЯрдмрджреНрдз рдХрд░реВ, рддреНрдпрд╛рдВрдирд╛ SOCKS рд╡рд░ рд░реВрдЯ рдХрд░реВ рдЖрдгрд┐ рд╕реНрдерд╛рдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХрд╕рд╛рдареА рдЬрд╛рд╣рд┐рд░рд╛рдд рдбреЛрдореЗрди рдЕрдХреНрд╖рдо рдХрд░реВ.

рд╣реЗ рд╕рд░реНрд╡ рдХрд╢рд╛рд╕рд╛рдареА рдЖрд╣реЗ?

рд╕реНрдерд╛рдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХрд╡рд░ TCP рдХрдиреЗрдХреНрд╢рди рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рд╣рд╛ рдПрдХ рдорд╛рд░реНрдЧ рдЖрд╣реЗ. рдореБрдЦреНрдп рдлрд╛рдпрджрд╛ рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рд╕рд░реНрд╡ рдХрдиреЗрдХреНрд╢рди SOCKS рдордзреНрдпреЗ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рдЬреЛрдкрд░реНрдпрдВрдд рдореВрд│ рдЧреЗрдЯрд╡реЗрджреНрд╡рд╛рд░реЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рд╕реНрдерд┐рд░ рдорд╛рд░реНрдЧ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рдд рдирд╛рд╣реА. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрдерд╛рдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХрд╡рд░реАрд▓ рд╡реИрдпрдХреНрддрд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рдВрд╡рд╛ рдХреНрд▓рд╛рдпрдВрдЯрд╕рд╛рдареА рд╕реЙрдХреНрд╕ рд╕рд░реНрд╡реНрд╣рд░ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА - рддреЗ рд╕рд░реНрд╡ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ SOCKS рд╡рд░ рдЬрд╛рддрд╛рдд, рдХрд╛рд░рдг рдЖрдореНрд╣реА рдЕрдиреНрдпрдерд╛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдкрд░реНрдпрдВрдд рддреЗ рдбреАрдлреЙрд▓реНрдЯ рдЧреЗрдЯрд╡реЗ рдЖрд╣реЗ.

рдореВрд▓рдд: рдЖрдореНрд╣реА рдореВрд│ рд░рд╛рдЙрдЯрд░рдЪреНрдпрд╛ рд╕рдореЛрд░ рджреБрд╕рд░рд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рд░рд╛рдЙрдЯрд░ рд▓реЕрдкрдЯреЙрдк рдореНрд╣рдгреВрди рдЬреЛрдбрддреЛ рдЖрдгрд┐ рд▓реЕрдкрдЯреЙрдкрдЪреНрдпрд╛ рдЖрдзреАрдЪ рдХреВрдЯрдмрджреНрдз рдХреЗрд▓реЗрд▓реНрдпрд╛ SOCKS рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╕рд╛рдареА рдореВрд│ рд░рд╛рдЙрдЯрд░рдЪреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рд╡рд╛рдкрд░рддреЛ, рдЬреНрдпрд╛рдореБрд│реЗ LAN рдХреНрд▓рд╛рдпрдВрдЯрдЪреНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдорд╛рд░реНрдЧ рдЖрдгрд┐ рдПрдирдХреНрд░рд┐рдкреНрдЯ рд╣реЛрддрд╛рдд.

рдкреНрд░рджрд╛рддреНрдпрд╛рдЪреНрдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рддреВрди, рдЖрдореНрд╣реА рд╕рддрдд рдПрдХрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╢реА рдПрдирдХреНрд░рд┐рдкреНрдЯреЗрдб рд░рд╣рджрд╛рд░реАрд╕рд╣ рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рддреЛ.

рддреНрдпрд╛рдиреБрд╕рд╛рд░, рд╕рд░реНрд╡ рдЙрдкрдХрд░рдгреЗ рд▓реЕрдкрдЯреЙрдкрдЪреНрдпрд╛ рдЖрднрд╛рд╕реА рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреВрд╢реА рдЬреЛрдбрд▓реЗрд▓реА рдЖрд╣реЗрдд.

рд╕рд┐рд╕реНрдЯрдорд╡рд░ tun2socks рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛

рдЬреЛрдкрд░реНрдпрдВрдд рддреБрдордЪреНрдпрд╛ рдорд╢реАрдирдордзреНрдпреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдЖрд╣реЗ, рддреЛрдкрд░реНрдпрдВрдд рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рд╕рд╛рдзрдиреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛.

apt update
apt install git make cmake

рдмреЕрдбрд╡реНрд╣реАрдкреАрдПрди рдкреЕрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛

git clone https://github.com/ambrop72/badvpn

рддреБрдордЪреНрдпрд╛ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рдПрдХ рдлреЛрд▓реНрдбрд░ рджрд┐рд╕реЗрд▓ badvpn. рдмрд┐рд▓реНрдбрд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рдлреЛрд▓реНрдбрд░ рддрдпрд╛рд░ рдХрд░рд╛

mkdir badvpn-build

рддреНрдпрд╛рд╡рд░ рдЬрд╛

cd badvpn-build

рдЧреЛрд│рд╛ рдХрд░рд╛ tun2socks

cmake ../badvpn -DBUILD_NOTHING_BY_DEFAULT=1 -DBUILD_TUN2SOCKS=1

рд╕рд┐рд╕реНрдЯрдорд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛

make install
  • рдкреЕрд░рд╛рдореАрдЯрд░ -DBUILD_NOTHING_BY_DEFAULT=1 рдмреЕрдбрд╡реНрд╣реАрдкреАрдПрди рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреАрд▓ рд╕рд░реНрд╡ рдШрдЯрдХ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЕрдХреНрд╖рдо рдХрд░рддреЗ.
  • -DBUILD_TUN2SOCKS=1 рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдордзреНрдпреЗ рдПрдХ рдШрдЯрдХ рд╕рдорд╛рд╡рд┐рд╖реНрдЯреАрдд рдЖрд╣реЗ tun2 рд╕реЙрдХреНрд╕.
  • make install - рдпреЗрдереЗ рддреБрдордЪреНрдпрд╛ рд╕рд┐рд╕реНрдЯрдорд╡рд░ tun2socks рдмрд╛рдпрдирд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрд▓ /usr/local/bin/badvpn-tun2socks.

systemd рдордзреНрдпреЗ tun2socks рд╕реЗрд╡рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛

рдПрдХ рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рд╛ /etc/systemd/system/tun2socks.service рдЦрд╛рд▓реАрд▓ рд╕рд╛рдордЧреНрд░реАрд╕рд╣:

[Unit]
Description=SOCKS TCP Relay

[Service]
ExecStart=/usr/local/bin/badvpn-tun2socks --tundev tun2socks --netif-ipaddr 172.16.1.1 --netif-netmask 255.255.255.0 --socks-server-addr 127.0.0.1:9050

[Install]
WantedBy=multi-user.target
  • --tundev - рд╡рд░реНрдЪреНрдпреБрдЕрд▓ рдЗрдВрдЯрд░рдлреЗрд╕рдЪреЗ рдирд╛рд╡ рдШреЗрддреЗ рдЬреЗ рдЖрдореНрд╣реА systemd-networkd рд╕рд╣ рдЖрд░рдВрдн рдХрд░рддреЛ.
  • --netif-ipaddr тАФ tun2socks тАЬрд░рд╛рдЙрдЯрд░тАЭ рдЪрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрддреНрддрд╛ рдЬреНрдпрд╛рд╡рд░ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдЬреЛрдбрд▓реЗрд▓рд╛ рдЖрд╣реЗ. рддреЗ рд╡реЗрдЧрд│реЗ рдХрд░рдгреЗ рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ рд░рд╛рдЦреАрд╡ рд╕рдмрдиреЗрдЯ.
  • --socks-server-addr - рд╕реЙрдХреЗрдЯ рд╕реНрд╡реАрдХрд╛рд░рддреЗ (╨░╨┤╤А╨╡╤Б:╨┐╨╛╤А╤В SOCKS рд╕рд░реНрд╡реНрд╣рд░).

рддреБрдордЪреНрдпрд╛ SOCKS рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛ --username ╨╕ --password.

рдкреБрдвреЗ, рд╕реЗрд╡реЗрдЪреА рдиреЛрдВрджрдгреА рдХрд░рд╛

systemctl daemon-reload

рдЖрдгрд┐ рддреЗ рдЪрд╛рд▓реВ рдХрд░рд╛

systemctl enable tun2socks

рд╕реЗрд╡рд╛ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рдЖрдореНрд╣реА рддреНрдпрд╛рд╕ рдЖрднрд╛рд╕реА рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдХрд░реВ.

systemd-networkd рд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдд рдЖрд╣реЗ

рдЖрдореНрд╣реА рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рддреЛ systemd-networkd:

systemctl enable systemd-networkd

рд╡рд░реНрддрдорд╛рди рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛ рдЕрдХреНрд╖рдо рдХрд░рд╛.

systemctl disable networking NetworkManager NetworkManager-wait-online
  • рдиреЗрдЯрд╡рд░реНрдХ рдореЕрдиреЗрдЬрд░-рд╡рд╛рдЯ-рдСрдирд▓рд╛рдЗрди рдПрдХ рд╕реЗрд╡рд╛ рдЖрд╣реЗ рдЬреА рдиреЗрдЯрд╡рд░реНрдХрдЪреНрдпрд╛ рдЙрдкрд╕реНрдерд┐рддреАрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЗрддрд░ рд╕реЗрд╡рд╛ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдЖрдзреА systemd рдиреЗ рдХрд╛рд░реНрдпрд░рдд рдиреЗрдЯрд╡рд░реНрдХ рдЬреЛрдбрдгреАрдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ. рдЖрдореНрд╣реА systemd-networkd analogue рд╡рд░ рд╕реНрд╡рд┐рдЪ рдХреЗрд▓реНрдпрд╛рдореБрд│реЗ рдЖрдореНрд╣реА рддреЗ рдЕрдХреНрд╖рдо рдХрд░рдд рдЖрд╣реЛрдд.

рдЪрд▓рд╛ рддреЗ рд▓рдЧреЗрдЪ рд╕рдХреНрд╖рдо рдХрд░реВрдпрд╛:

systemctl enable systemd-networkd-wait-online

рд╡рд╛рдпрд░рд▓реЗрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реЗрдЯ рдХрд░рд╛

рд╡рд╛рдпрд░рд▓реЗрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕рд╕рд╛рдареА systemd-networkd рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рд╛ /etc/systemd/network/25-wlp6s0.network.

[Match]
Name=wlp6s0

[Network]
Address=192.168.1.2/24
IPForward=yes
  • рдирд╛рд╡ рддреБрдордЪреНрдпрд╛ рд╡рд╛рдпрд░рд▓реЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕рдЪреЗ рдирд╛рд╡ рдЖрд╣реЗ. рдЖрдЬреНрдЮрд╛ рджреЗрдКрди рдУрд│рдЦрд╛ ip a.
  • IPForward - рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕рд╡рд░ рдкреЕрдХреЗрдЯ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рд╕рдХреНрд╖рдо рдХрд░рдгрд╛рд░реЗ рдирд┐рд░реНрджреЗрд╢.
  • рдкрддреНрддрд╛ рд╡рд╛рдпрд░рд▓реЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕рд▓рд╛ IP рдкрддреНрддрд╛ рдирд┐рдпреБрдХреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ. рдЖрдореНрд╣реА рддреЗ рд╕реНрдерд┐рд░рдкрдгреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЛ рдХрд╛рд░рдг рд╕рдорддреБрд▓реНрдп рдирд┐рд░реНрджреЗрд╢рд╛рд╕рд╣ DHCP=yes, systemd-networkd рдкреНрд░рдгрд╛рд▓реАрд╡рд░ рдбреАрдлреЙрд▓реНрдЯ рдЧреЗрдЯрд╡реЗ рддрдпрд╛рд░ рдХрд░рддреЗ. рдордЧ рд╕рд░реНрд╡ рд░рд╣рджрд╛рд░реА рдореВрд│ рдЧреЗрдЯрд╡реЗрдордзреВрди рдЬрд╛рдИрд▓, рд╡реЗрдЧрд│реНрдпрд╛ рд╕рдмрдиреЗрдЯрд╡рд░реАрд▓ рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ рдЖрднрд╛рд╕реА рдЗрдВрдЯрд░рдлреЗрд╕рджреНрд╡рд╛рд░реЗ рдирд╛рд╣реА. рддреБрдореНрд╣реА рдХрдорд╛рдВрдбрд╕рд╣ рд╡рд░реНрддрдорд╛рди рдбреАрдлреЙрд▓реНрдЯ рдЧреЗрдЯрд╡реЗ рддрдкрд╛рд╕реВ рд╢рдХрддрд╛ ip r

рд░рд┐рдореЛрдЯ SOCKS рд╕рд░реНрд╡реНрд╣рд░рд╕рд╛рдареА рдПрдХ рд╕реНрдерд┐рд░ рдорд╛рд░реНрдЧ рддрдпрд╛рд░ рдХрд░рд╛

рдЬрд░ рддреБрдордЪрд╛ SOCKS рд╕рд░реНрд╡реНрд╣рд░ рд╕реНрдерд╛рдирд┐рдХ рдирд╕реЗрд▓, рдкрд░рдВрддреБ рд░рд┐рдореЛрдЯ рдЕрд╕реЗрд▓, рддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕реНрдерд┐рд░ рдорд╛рд░реНрдЧ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдПрдХ рд╡рд┐рднрд╛рдЧ рдЬреЛрдбрд╛ Route рддреБрдореНрд╣реА рдЦрд╛рд▓реАрд▓ рд╕рд╛рдордЧреНрд░реАрд╕рд╣ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд╛рдпрд░рд▓реЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА:

[Route]
Gateway=192.168.1.1
Destination=0.0.0.0
  • Gateway тАФ рд╣рд╛ рдбреАрдлреЙрд▓реНрдЯ рдЧреЗрдЯрд╡реЗ рдХрд┐рдВрд╡рд╛ рддреБрдордЪреНрдпрд╛ рдореВрд│ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреВрдЪрд╛ рдкрддреНрддрд╛ рдЖрд╣реЗ.
  • Destination - SOCKS рд╕рд░реНрд╡реНрд╣рд░ рдкрддреНрддрд╛.

systemd-networkd рд╕рд╛рдареА wpa_supplicant рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рд╛

systemd-networkd рд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреВрд╢реА рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА wpa_supplicant рд╡рд╛рдкрд░рддреЗ. рд╡рд╛рдпрд░рд▓реЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕ "рд╡рд╛рдврд╡рдгреНрдпрд╛рдЪрд╛" рдкреНрд░рдпрддреНрди рдХрд░рддрд╛рдирд╛, systemd-networkd рд╕реЗрд╡рд╛ рд╕реБрд░реВ рдХрд░рддреЗ wpa_supplicant@╨╕╨╝╤ПрдХреБрдареЗ ╨Ш╨╝╤П рд╡рд╛рдпрд░рд▓реЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕рдЪреЗ рдирд╛рд╡ рдЖрд╣реЗ. рдЬрд░ рддреБрдореНрд╣реА рдпрд╛ рдмрд┐рдВрджреВрдкреВрд░реНрд╡реА systemd-networkd рд╡рд╛рдкрд░рд▓реЗ рдирд╕реЗрд▓, рддрд░ рдХрджрд╛рдЪрд┐рдд рддреБрдордЪреНрдпрд╛ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рд╣реА рд╕реЗрд╡рд╛ рдЧрд╣рд╛рд│ рдЖрд╣реЗ.

рдореНрд╣рдгреВрди рдХрдорд╛рдВрдбрд╕рд╣ рддреЗ рддрдпрд╛рд░ рдХрд░рд╛:

systemctl enable wpa_supplicant@wlp6s0

рдореА рд╡рд╛рдкрд░рд▓реЗ wlp6s0 рддреНрдпрд╛рдЪреНрдпрд╛ рд╡рд╛рдпрд░рд▓реЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕рдЪреНрдпрд╛ рдирд╛рд╡рд╛рдкреНрд░рдорд╛рдгреЗ. рддреБрдордЪреЗ рдирд╛рд╡ рд╡реЗрдЧрд│реЗ рдЕрд╕реВ рд╢рдХрддреЗ. рддреБрдореНрд╣реА рдХрдорд╛рдВрдбрдиреЗ рддреЗ рдУрд│рдЦреВ рд╢рдХрддрд╛ ip l.

рдЖрддрд╛ рддрдпрд╛рд░ рд╕реЗрд╡рд╛ wpa_supplicant@wlp6s0 рдЬреЗрд╡реНрд╣рд╛ рд╡рд╛рдпрд░рд▓реЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕ "рд╡рд╛рдврд╡рд▓рд╛" рдЬрд╛рдИрд▓ рддреЗрд╡реНрд╣рд╛ рд▓реЙрдиреНрдЪ рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓, рддрдерд╛рдкрд┐, рддреЗ, рдпрд╛рдордзреВрди, рдлрд╛рдЗрд▓рдордзреАрд▓ рдНрдХреНрд╕реЗрд╕ рдкреЙрдИрдВрдЯрдЪреА SSID рдЖрдгрд┐ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рд╢реЛрдзреЗрд▓ /etc/wpa_supplicant/wpa_supplicant-wlp6s0. рдореНрд╣рдгреВрди, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдпреБрдЯрд┐рд▓рд┐рдЯреА рд╡рд╛рдкрд░реВрди рддреЗ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ wpa_passphrase.

рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡рд╛:

wpa_passphrase SSID password>/etc/wpa_supplicant/wpa_supplicant-wlp6s0.conf

рдЬреЗрдереЗ рдПрд╕рдПрд╕рдЖрдпрдбреА рддреБрдордЪреНрдпрд╛ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреВрдЪреЗ рдирд╛рд╡ рдЖрд╣реЗ, рдкрд╛рд╕рд╡рд░реНрдб рд╣рд╛ рдкрд╛рд╕рд╡рд░реНрдб рдЖрд╣реЗ рдЖрдгрд┐ wlp6s0 тАФ рддреБрдордЪреНрдпрд╛ рд╡рд╛рдпрд░рд▓реЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕рдЪреЗ рдирд╛рд╡.

tun2socks рд╕рд╛рдареА рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реБрд░реВ рдХрд░рд╛

рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рдирд╡реАрди рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рд╛/etc/systemd/network/25-tun2socks.netdev

[NetDev]
Name=tun2socks
Kind=tun
  • рдирд╛рд╡ рд╣реЗ рдирд╛рд╡ рдЖрд╣реЗ рдЬреЗ systemd-networkd рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реБрд░реВ рдЭрд╛рд▓реНрдпрд╛рд╡рд░ рдирд┐рдпреБрдХреНрдд рдХрд░реЗрд▓.
  • рдкреНрд░рдХрд╛рд░рдЪреА рдЖрднрд╛рд╕реА рдЗрдВрдЯрд░рдлреЗрд╕рдЪрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдЖрд╣реЗ. tun2socks рд╕реЗрд╡реЗрдЪреНрдпрд╛ рдирд╛рд╡рд╛рд╡рд░реВрди, рддреБрдореНрд╣реА рдЕрдВрджрд╛рдЬ рд▓рд╛рд╡реВ рд╢рдХрддрд╛ рдХреА рддреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕рд╛рд░рдЦреЗ рд╡рд╛рдкрд░рддреЗ tun.
  • рдиреЗрдЯрджреЗрд╡ рдлрд╛рдЗрд▓реНрд╕рдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЖрд╣реЗ systemd-networkd рд╡рд░реНрдЪреНрдпреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рддреЗ. рдпрд╛ рдЗрдВрдЯрд░рдлреЗрд╕рд╕рд╛рдареА рдкрддреНрддрд╛ рдЖрдгрд┐ рдЗрддрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд .рдиреЗрдЯрд╡рд░реНрдХ-рдлрд╛рдИрд▓реНрд╕.

рдЕрд╢реА рдлрд╛рдИрд▓ рддрдпрд╛рд░ рдХрд░рд╛ /etc/systemd/network/25-tun2socks.network рдЦрд╛рд▓реАрд▓ рд╕рд╛рдордЧреНрд░реАрд╕рд╣:

[Match]
Name=tun2socks

[Network]
Address=172.16.1.2/24
Gateway=172.16.1.1
  • Name тАФ рддреБрдореНрд╣реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдЗрдВрдЯрд░рдлреЗрд╕рдЪреЗ рдирд╛рд╡ рдиреЗрдЯрджреЗрд╡-рдлрд╛рдЗрд▓.
  • Address тАФ IP рдкрддреНрддрд╛ рдЬреЛ рдЖрднрд╛рд╕реА рдЗрдВрдЯрд░рдлреЗрд╕рд▓рд╛ рдирд┐рдпреБрдХреНрдд рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓. рддреБрдореНрд╣реА tun2socks рд╕реЗрд╡реЗрдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкрддреНрддреНрдпрд╛рдЪреНрдпрд╛ рд╕рдорд╛рди рдиреЗрдЯрд╡рд░реНрдХрд╡рд░ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
  • Gateway тАФ тАЬрд░рд╛рдЙрдЯрд░тАЭ рдЪрд╛ IP рдкрддреНрддрд╛ tun2 рд╕реЙрдХреНрд╕, рдЬреЗ рддреБрдореНрд╣реА systemd рд╕реЗрд╡рд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛рдирд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ.

рддрд░ рдЗрдВрдЯрд░рдлреЗрд╕ tun2 рд╕реЙрдХреНрд╕ рдкрддреНрддрд╛ рдЖрд╣реЗ 172.16.1.2, рдЖрдгрд┐ рд╕реЗрд╡рд╛ tun2 рд╕реЙрдХреНрд╕ - 172.16.1.1, рдореНрд╣рдгрдЬреЗ, рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдЗрдВрдЯрд░рдлреЗрд╕рдордзреАрд▓ рд╕рд░реНрд╡ рдХрдиреЗрдХреНрд╢рдирд╕рд╛рдареА рд╣реЗ рдкреНрд░рд╡реЗрд╢рджреНрд╡рд╛рд░ рдЖрд╣реЗ.

рдЖрднрд╛рд╕реА рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреВ рд╕реЗрдЯ рдХрд░рд╛

рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛:

apt install util-linux procps hostapd iw haveged

рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛ create_ap рддреБрдордЪреНрдпрд╛ рдХрд╛рд░рд▓рд╛:

git clone https://github.com/oblique/create_ap

рддреБрдордЪреНрдпрд╛ рдорд╢реАрдирд╡рд░реАрд▓ рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рдлреЛрд▓реНрдбрд░рд╡рд░ рдЬрд╛:

cd create_ap

рд╕рд┐рд╕реНрдЯрдорд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛:

make install

рддреБрдордЪреНрдпрд╛ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рдПрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рджрд┐рд╕реЗрд▓ /etc/create_ap.conf. рдпреЗрдереЗ рдореБрдЦреНрдп рд╕рдВрдкрд╛рджрди рдкрд░реНрдпрд╛рдп рдЖрд╣реЗрдд:

  • GATEWAY=10.0.0.1 - рддреЗ рд╡реЗрдЧрд│реЗ рдЖрд░рдХреНрд╖рд┐рдд рд╕рдмрдиреЗрдЯ рдмрдирд╡рдгреЗ рдЪрд╛рдВрдЧрд▓реЗ.
  • NO_DNS=1 - рдЕрдХреНрд╖рдо рдХрд░рд╛, рдХрд╛рд░рдг рд╣реЗ рдкреЕрд░рд╛рдореАрдЯрд░ systemd-networkd рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдЗрдВрдЯрд░рдлреЗрд╕рджреНрд╡рд╛рд░реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдИрд▓.
  • NO_DNSMASQ=1 - рддреНрдпрд╛рдЪ рдХрд╛рд░рдгрд╛рд╕рд╛рдареА рддреЗ рдмрдВрдж рдХрд░рд╛.
  • WIFI_IFACE=wlp6s0 - рд▓реЕрдкрдЯреЙрдк рд╡рд╛рдпрд░рд▓реЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕.
  • INTERNET_IFACE=tun2socks - tun2socks рд╕рд╛рдареА рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓рд╛ рдЖрднрд╛рд╕реА рдЗрдВрдЯрд░рдлреЗрд╕.
  • SSID=hostapd тАФ рдЖрднрд╛рд╕реА рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреВрдЪреЗ рдирд╛рд╡.
  • PASSPHRASE=12345678 - рдкрд╛рд╕рд╡рд░реНрдб.

рд╕реЗрд╡рд╛ рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕ рд╡рд┐рд╕рд░реВ рдирдХрд╛:

systemctl enable create_ap

systemd-networkd рдордзреНрдпреЗ DHCP рд╕рд░реНрд╡реНрд╣рд░ рд╕рдХреНрд╖рдо рдХрд░рд╛

рд╕реЗрд╡рд╛ create_ap рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реБрд░реВ рдХрд░рддреЗ ap0. рд╕рд┐рджреНрдзрд╛рдВрддрддрдГ, dnsmasq рдпрд╛ рдЗрдВрдЯрд░рдлреЗрд╕рд╡рд░ рд╣рдБрдЧ рд╣реЛрддреЛ, рдкрд░рдВрддреБ рдЬрд░ systemd-networkd рдордзреНрдпреЗ рдЕрдВрдЧрднреВрдд DHCP рд╕рд░реНрд╡реНрд╣рд░ рдЕрд╕реЗрд▓ рддрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрд╡рд╛ рдХрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛рд╡реНрдпрд╛рдд?

рддреЗ рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдЖрднрд╛рд╕реА рдмрд┐рдВрджреВрд╕рд╛рдареА рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реВ. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдПрдХ рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рд╛ /etc/systemd/network/25-ap0.network рдЦрд╛рд▓реАрд▓ рд╕рд╛рдордЧреНрд░реАрд╕рд╣:

[Match]
Name=ap0

[Network]
Address=10.0.0.1/24
DHCPServer=yes

[DHCPServer]
EmitDNS=yes
DNS=10.0.0.1
EmitNTP=yes
NTP=10.0.0.1

create_ap рд╕реЗрд╡рд╛ рд╡рд░реНрдЪреНрдпреБрдЕрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реБрд░реВ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ ap0, systemd-networkd рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рддреНрдпрд╛рд▓рд╛ IP рдкрддреНрддрд╛ рдирд┐рдпреБрдХреНрдд рдХрд░реЗрд▓ рдЖрдгрд┐ DHCP рд╕рд░реНрд╡реНрд╣рд░ рд╕рдХреНрд╖рдо рдХрд░реЗрд▓.

рддрд╛рд░ EmitDNS=yes ╨╕ DNS=10.0.0.1 рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреВрд╢реА рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕рд╡рд░ DNS рд╕рд░реНрд╡реНрд╣рд░ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рд╛.

рддреБрдореНрд╣реА рд╕реНрдерд╛рдирд┐рдХ DNS рд╕рд░реНрд╡реНрд╣рд░ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рдХрд░рдд рдирд╕рд▓реНрдпрд╛рд╕ - рдорд╛рдЭреНрдпрд╛ рдмрд╛рдмрддреАрдд рддреЗ dnscrypt-proxy рдЖрд╣реЗ - рддреБрдореНрд╣реА рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реВ рд╢рдХрддрд╛ DNS=10.0.0.1 ╨▓ DNS=192.168.1.1рдХреБрдареЗ 192.168.1.1 - рддреБрдордЪреНрдпрд╛ рдореВрд│ рдЧреЗрдЯрд╡реЗрдЪрд╛ рдкрддреНрддрд╛. рдордЧ рддреБрдордЪреНрдпрд╛ рд╣реЛрд╕реНрдЯ рдЖрдгрд┐ рд╕реНрдерд╛рдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХрд╕рд╛рдареА рдбреАрдПрдирдПрд╕ рд╡рд┐рдирдВрддреНрдпрд╛ рдкреНрд░рджрд╛рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рджреНрд╡рд╛рд░реЗ рдПрдирдХреНрд░рд┐рдкреНрдЯ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддреАрд▓.

EmitNTP=yes ╨╕ NTP=192.168.1.1 NTP рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рд╛.

рдУрд│реАрд╕рд╛рдареАрд╣реА рддреЗрдЪ рдЖрд╣реЗ NTP=10.0.0.1.

рдПрдирдЯреАрдкреА рд╕рд░реНрд╡реНрд╣рд░ рд╕реНрдерд╛рдкрд┐рдд рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рд╛

рд╕рд┐рд╕реНрдЯрдорд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛:

apt install ntp

рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рд╛ /etc/ntp.conf. рдорд╛рдирдХ рддрд▓рд╛рд╡рд╛рдВрдЪреЗ рдкрддреНрддреЗ рдЯрд┐рдкреНрдкрдгреА рджреНрдпрд╛:

#pool 0.debian.pool.ntp.org iburst
#pool 1.debian.pool.ntp.org iburst
#pool 2.debian.pool.ntp.org iburst
#pool 3.debian.pool.ntp.org iburst

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рд░реНрд╡реНрд╣рд░ рдкрддреНрддреЗ рдЬреЛрдбрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде Google рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ NTP:

server time1.google.com ibrust
server time2.google.com ibrust
server time3.google.com ibrust
server time4.google.com ibrust

рддреБрдордЪреНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХрд╡рд░реАрд▓ рдХреНрд▓рд╛рдпрдВрдЯрдирд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдкреНрд░рд╡реЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рд╛:

restrict 10.0.0.0 mask 255.255.255.0

рддреБрдордЪреНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХрд╡рд░ рдкреНрд░рд╕рд╛рд░рдг рд╕рдХреНрд╖рдо рдХрд░рд╛:

broadcast 10.0.0.255

рд╢реЗрд╡рдЯреА, рдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рдЪреЗ рдкрддреНрддреЗ рд╕реНрдерд┐рд░ рд░рд╛рдЙрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓рдордзреНрдпреЗ рдЬреЛрдбрд╛. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╡рд╛рдпрд░рд▓реЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рдЙрдШрдбрд╛ /etc/systemd/network/25-wlp6s0.network рдЖрдгрд┐ рд╡рд┐рднрд╛рдЧрд╛рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рдЬреЛрдбрд╛ Route.

[Route]
Gateway=192.168.1.1
Destination=216.239.35.0

[Route]
Gateway=192.168.1.1
Destination=216.239.35.4

[Route]
Gateway=192.168.1.1
Destination=216.239.35.8

[Route]
Gateway=192.168.1.1
Destination=216.239.35.12

рдпреБрдЯрд┐рд▓рд┐рдЯреА рд╡рд╛рдкрд░реВрди рддреБрдореНрд╣реА рддреБрдордЪреНрдпрд╛ NTP рд╕рд░реНрд╡реНрд╣рд░рдЪреЗ рдкрддреНрддреЗ рд╢реЛрдзреВ рд╢рдХрддрд╛ host рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ:

host time1.google.com

dnscrypt-proxy рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛, рдЬрд╛рд╣рд┐рд░рд╛рддреА рдХрд╛рдвреВрди рдЯрд╛рдХрд╛ рдЖрдгрд┐ рддреБрдордЪреНрдпрд╛ рдкреНрд░рджрд╛рддреНрдпрд╛рдХрдбреВрди DNS рд░рд╣рджрд╛рд░реА рд▓рдкрд╡рд╛

apt install dnscrypt-proxy

рд╣реЛрд╕реНрдЯ рдЖрдгрд┐ рд╕реНрдерд╛рдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ DNS рдХреНрд╡реЗрд░реА рд╕рд░реНрд╡реНрд╣ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╕реЙрдХреЗрдЯ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рд╛ /lib/systemd/system/dnscrypt-proxy.socket. рдЦрд╛рд▓реАрд▓ рдУрд│реА рдмрджрд▓рд╛:

ListenStream=0.0.0.0:53
ListenDatagram=0.0.0.0:53

рдкреБрдиреНрд╣рд╛ рд╕реБрд░реВ рдХрд░рд╛ systemd:

systemctl daemon-reload

рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рд╛ /etc/dnscrypt-proxy/dnscrypt-proxy.toml:

server_names = ['adguard-dns']

tun2socks рджреНрд╡рд╛рд░реЗ dnscrypt-рдкреНрд░реЙрдХреНрд╕реА рдХрдиреЗрдХреНрд╢рди рд░реВрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЦрд╛рд▓реА рдЬреЛрдбрд╛:

force_tcp = true

рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рд╛ /etc/resolv.conf, рдЬреЗ DNS рд╕рд░реНрд╡реНрд╣рд░ рд╣реЛрд╕реНрдЯрд▓рд╛ рд╕рд╛рдВрдЧрддреЗ.

nameserver 127.0.0.1
nameserver 192.168.1.1

рдкрд╣рд┐рд▓реА рдУрд│ dnscrypt-proxy рдЪрд╛ рд╡рд╛рдкрд░ рд╕рдХреНрд╖рдо рдХрд░рддреЗ, dnscrypt-рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡реНрд╣рд░ рдЕрдиреБрдкрд▓рдмреНрдз рдЕрд╕рд▓реНрдпрд╛рд╕ рджреБрд╕рд░реА рдУрд│ рдореВрд│ рдЧреЗрдЯрд╡реЗ рд╡рд╛рдкрд░рддреЗ.

рдЭрд╛рд▓реЗ!

рд░реАрдмреВрдЯ рдХрд░рд╛ рдХрд┐рдВрд╡рд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛ рдЪрд╛рд▓реВ рдХрд░рдгреЗ рдерд╛рдВрдмрд╡рд╛:

systemctl stop networking NetworkManager NetworkManager-wait-online

рдЖрдгрд┐ рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рд╛:

systemctl restart systemd-networkd tun2socks create_ap dnscrypt-proxy ntp

рд░реАрдмреВрдЯ рдХрд┐рдВрд╡рд╛ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рддреБрдордЪреНрдпрд╛рдХрдбреЗ рджреБрд╕рд░рд╛ рдНрдХреНрд╕реЗрд╕ рдкреЙрдИрдВрдЯ рдЕрд╕реЗрд▓ рдЬреЛ рд╣реЛрд╕реНрдЯ рдЖрдгрд┐ LAN рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕рдирд╛ SOCKS рдХрдбреЗ рдиреЗрддреЛ.

рдЖрдЙрдЯрдкреБрдЯ рдЕрд╕реЗ рджрд┐рд╕рддреЗ ip a рдирд┐рдпрдорд┐рдд рд▓реЕрдкрдЯреЙрдк:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: tun2socks: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 500
    link/none 
    inet 172.16.1.2/24 brd 172.16.1.255 scope global tun2socks
       valid_lft forever preferred_lft forever
    inet6 fe80::122b:260:6590:1b0e/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever
3: enp4s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether e8:11:32:0e:01:50 brd ff:ff:ff:ff:ff:ff
4: wlp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 4c:ed:de:cb:cf:85 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.2/24 brd 192.168.1.255 scope global wlp6s0
       valid_lft forever preferred_lft forever
    inet6 fe80::4eed:deff:fecb:cf85/64 scope link 
       valid_lft forever preferred_lft forever
5: ap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 4c:ed:de:cb:cf:86 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.1/24 brd 10.0.0.255 scope global ap0
       valid_lft forever preferred_lft forever
    inet6 fe80::4eed:deff:fecb:cf86/64 scope link 
       valid_lft forever preferred_lft forever

рд╢реЗрд╡рдЯреА

  1. рдкреНрд░рджрд╛рддрд╛ рдлрдХреНрдд рддреБрдордЪреНрдпрд╛ SOCKS рд╕рд░реНрд╡реНрд╣рд░рд╢реА рдХреВрдЯрдмрджреНрдз рдХреЗрд▓реЗрд▓реЗ рдХрдиреЗрдХреНрд╢рди рдкрд╛рд╣рддреЛ, рдпрд╛рдЪрд╛ рдЕрд░реНрде рддреНрдпрд╛рдВрдирд╛ рдХрд╛рд╣реАрд╣реА рджрд┐рд╕рдд рдирд╛рд╣реА.
  2. рдЖрдгрд┐ рддрд░реАрд╣реА рддреЗ рддреБрдордЪреНрдпрд╛ NTP рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рд╣рддреЗ, рд╣реЗ рдЯрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА, NTP рд╕рд░реНрд╡реНрд╣рд░рд╕рд╛рдареА рд╕реНрдерд┐рд░ рдорд╛рд░реНрдЧ рдХрд╛рдвреВрди рдЯрд╛рдХрд╛. рддрдерд╛рдкрд┐, рд╣реЗ рдирд┐рд╢реНрдЪрд┐рдд рдирд╛рд╣реА рдХреА рддреБрдордЪрд╛ SOCKS рд╕рд░реНрд╡реНрд╣рд░ NTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓рд▓рд╛ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ.

рдбреЗрдмреЗрди 10 рд╡рд░ рдХреНрд░реЕрдЪ рджрд┐рд╕рд▓рд╛

рддреБрдореНрд╣реА рдХрдиреНрд╕реЛрд▓рд╡рд░реВрди рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХреЗрд▓реНрдпрд╛рд╕, рддреА рддреНрд░реБрдЯреАрд╕рд╣ рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдИрд▓. рд╣реЗ рдпрд╛ рд╡рд╕реНрддреБрд╕реНрдерд┐рддреАрдореБрд│реЗ рдЖрд╣реЗ рдХреА рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдЗрдВрдЯрд░рдлреЗрд╕рдЪреНрдпрд╛ рд░реВрдкрд╛рдд рддреНрдпрд╛рдЪрд╛ рдХрд╛рд╣реА рднрд╛рдЧ рдЯреНрдпреВрди 2 рд╕реЙрдХреНрд╕ рд╕реЗрд╡реЗрд╢реА рдЬреЛрдбрд▓реЗрд▓рд╛ рдЖрд╣реЗ, рдореНрд╣рдгрдЬреЗ рддреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдкрдг рдкреНрд░рдердо tun2socks рд╕реЗрд╡рд╛ рдерд╛рдВрдмрд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдкрд░рдВрддреБ, рдорд▓рд╛ рд╡рд╛рдЯрддреЗ, рдЬрд░ рддреБрдореНрд╣реА рд╢реЗрд╡рдЯрдкрд░реНрдпрдВрдд рд╡рд╛рдЪрд▓реЗ рддрд░, рд╣реА рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рдирдХреНрдХреАрдЪ рд╕рдорд╕реНрдпрд╛ рдирд╛рд╣реА!

рд╕рдВрджрд░реНрдн

  1. рд▓рд┐рдирдХреНрд╕рд╡рд░ рд╕реНрдерд┐рд░ рд░рд╛рдЙрдЯрд┐рдВрдЧ - IBM
  2. systemd-networkd.service - Freedesktop.org
  3. Tun2socks ┬╖ ambrop72/badvpn Wiki ┬╖ GitHub
  4. oblique/create_ap: рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ NATed рдХрд┐рдВрд╡рд╛ Bridged WiFi Access Point рддрдпрд╛рд░ рдХрд░рддреЗ.
  5. dnscrypt-proxy 2 тАФ рдПрдХ рд▓рд╡рдЪрд┐рдХ DNS рдкреНрд░реЙрдХреНрд╕реА, рдПрдирдХреНрд░рд┐рдкреНрдЯреЗрдб DNS рдкреНрд░реЛрдЯреЛрдХреЙрд▓рд╕рд╛рдареА рд╕рдорд░реНрдердирд╛рд╕рд╣.

рд╕реНрддреНрд░реЛрдд: www.habr.com