<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Golang on jkgtw&#39;s blog </title>
    <link>https://www.jkg.tw/tags/golang/</link>
    <description>Recent content in Golang on jkgtw&#39;s blog </description>
    <image>
      <title>jkgtw&#39;s blog </title>
      <url>https://www.jkg.tw/apple-touch-icon.png</url>
      <link>https://www.jkg.tw/apple-touch-icon.png</link>
    </image>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Thu, 15 Apr 2021 09:50:00 +0800</lastBuildDate>
    <atom:link href="https://www.jkg.tw/tags/golang/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>使用 Docker 快速搭建 Telegram 專用代理 MTProxy-Go</title>
      <link>https://www.jkg.tw/p3526/</link>
      <pubDate>Thu, 15 Apr 2021 09:50:00 +0800</pubDate>
      <guid>https://www.jkg.tw/p3526/</guid>
      <description>&lt;p&gt;​&lt;/p&gt;
&lt;p&gt;之前&lt;a href=&#34;https://www.jkg.tw/p2633/&#34;&gt;有一篇&lt;/a&gt;使用一鍵快速腳本搭建 Telegram 專用代理 &lt;a href=&#34;https://github.com/9seconds/mtg&#34;&gt;MTProxy-Go&lt;/a&gt;，不過好像原作者被抓去喝茶還是什麼鬼的 🥸&lt;/p&gt;
&lt;p&gt;反正那個腳本已經年久失修，不太能正常使用了&lt;/p&gt;
&lt;p&gt;有些上游來源路徑已經改過，所以在 build 過程會失敗，於是另外找了 Docker 版本&lt;/p&gt;
&lt;p&gt;Docker 版本跟之前腳本相比起來搭建出錯機率小很多，因為整個都幫你包好了，日後更新起來也很容易&lt;/p&gt;
&lt;p&gt;另外可能還會有人問 Telegram 不就直接可以正常使用嗎？為什麼還要翻牆代理？&lt;/p&gt;
&lt;p&gt;在台灣確實可以正常使用，但是台灣手機號碼註冊分配到 Telegram 的新加坡機房速度時好時壞，有時候圖片或者影片會跑好久&lt;/p&gt;
&lt;p&gt;為了要有更好的使用體驗，如果能自己搭一個海外 VPS 會改善非常多，像是 GCP 的台灣或者 AWS 的日本都能有不錯的連線穩定度&lt;/p&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;h3 id=&#34;安裝-docker-community-穩定版&#34;&gt;安裝 Docker Community 穩定版&lt;/h3&gt;
&lt;p&gt;雖然這安裝 Docker 的部分已經講過很多次，不過還是再寫一遍&lt;/p&gt;
&lt;p&gt;如果你已經有 Docker 執行環境就可以跳過&lt;/p&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;p&gt;一樣先 SSH 連到伺服器上，安裝 Docker 跟需要的軟體，以下適用於 Debian 與 Ubuntu&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 先完整更新一下系統&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt update &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt full-upgrade -y
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 安裝一下等下會需要用到的軟體&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt install curl -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;​&lt;/p&gt;
&lt;p&gt;更新好以後，使用 Docker 官方的&lt;a href=&#34;https://github.com/docker/docker-install&#34;&gt;一鍵安裝腳本&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ curl -fsSL https://get.docker.com/ &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;接著稍等片刻，他會自動安裝到最新穩定版的 Docker&lt;/p&gt;</description>
    </item>
    <item>
      <title>免安裝 Golang 環境快速編譯 Golang 多平台的執行檔</title>
      <link>https://www.jkg.tw/p3331/</link>
      <pubDate>Sat, 25 Apr 2020 17:10:36 +0800</pubDate>
      <guid>https://www.jkg.tw/p3331/</guid>
      <description>&lt;p&gt;​&lt;/p&gt;
&lt;p&gt;最近在編譯一些 &lt;a href=&#34;https://golang.org&#34;&gt;Golang&lt;/a&gt; 的時候被環境設定搞快瘋掉，有次編譯過程還把我一台&lt;a href=&#34;https://www.jkg.tw/p3163&#34;&gt;甲骨文&lt;/a&gt;機器搞掛掉&lt;/p&gt;
&lt;p&gt;只能手動去甲骨文網站後台強制重開機才恢復，差點吐血。。。&lt;/p&gt;
&lt;p&gt;之後在推特上面咆哮了一下，吸引了幾個技術大神空投解決方案，&lt;code&gt;萬事問推友&lt;/code&gt;真是一點都沒說錯～ 😀&lt;/p&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34; data-dnt=&#34;true&#34;&gt;&lt;p lang=&#34;qme&#34; dir=&#34;ltr&#34;&gt;&lt;a href=&#34;https://t.co/IYspQcWy0D&#34;&gt;https://t.co/IYspQcWy0D&lt;/a&gt;&lt;/p&gt;&amp;mdash; 一阁 (@yegle) &lt;a href=&#34;https://twitter.com/yegle/status/1253485850983194624?ref_src=twsrc%5Etfw&#34;&gt;April 24, 2020&lt;/a&gt;&lt;/blockquote&gt;


&lt;p&gt;​&lt;/p&gt;
&lt;p&gt;稍微看一下 &lt;a href=&#34;https://gobinaries.com&#34;&gt;GoBinaries&lt;/a&gt; 說明書，這玩意真神器，只要一行指令就能直接產出編譯好的 Go 執行檔&lt;/p&gt;
&lt;p&gt;什麼 Go 環境、依賴都不用管啦～速度之快，人都還沒反應過來就已經完成了～ 😱&lt;/p&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;h2 id=&#34;gobinaries-30-秒快速解決方案&#34;&gt;GoBinaries 30 秒快速解決方案&lt;/h2&gt;
&lt;p&gt;下面以之前介紹過的 &lt;a href=&#34;https://www.jkg.tw/p2633&#34;&gt;MTProxy-Go&lt;/a&gt; 為例，有時候作者原始碼已經更新加入新功能，但是 Releases 裡面不見得馬上放出來&lt;/p&gt;
&lt;p&gt;這時候想要享受新功能就必須自己抓原始碼下來自己編譯了～&lt;/p&gt;
&lt;p&gt;MTProxy-Go 項目的網址是： &lt;a href=&#34;https://github.com/9seconds/mtg&#34;&gt;https://github.com/9seconds/mtg&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;我們只要拷貝 github.com 網址後面的部分即可，也就是 &lt;code&gt;9seconds/mtg&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;接著在你想要執行的機器上，使用下面一行指令即可完成執行檔的下載&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -sf https://gobinaries.com/9seconds/mtg &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;​&lt;/p&gt;
&lt;p&gt;也可以下載指定的 tag 版本&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -sf https://gobinaries.com/9seconds/mtg@v1.0.2 &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;​&lt;/p&gt;
&lt;p&gt;執行時，他會根據你的 CPU 與系統，網路速度不差的話很快就下載下來，並且還幫你安裝到 /usr/local/bin 資料夾裡面&lt;/p&gt;
&lt;p&gt;馬上就能開始用了，超方便！&lt;/p&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;p&gt;如果你有權限問題，沒辦法寫入 /usr/local/bin 的話，也可以加個 PREFIX 參數把執行檔放到目前目錄下&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -sf https://gobinaries.com/9seconds/mtg &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;PREFIX&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;. sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;​&lt;/p&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;h2 id=&#34;完整-docker-版萬解方案&#34;&gt;完整 Docker 版萬解方案&lt;/h2&gt;
&lt;p&gt;此方案來自另外一位推友技術大神&lt;/p&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34; data-dnt=&#34;true&#34;&gt;&lt;p lang=&#34;zh&#34; dir=&#34;ltr&#34;&gt;docker pull golang:alpine 编译啊 环境都准备好的&lt;/p&gt;</description>
    </item>
    <item>
      <title>利用 GCP 快速搭建 Telegram 專用 MTProxy Go</title>
      <link>https://www.jkg.tw/p2633/</link>
      <pubDate>Sun, 01 Dec 2019 05:41:24 +0800</pubDate>
      <guid>https://www.jkg.tw/p2633/</guid>
      <description>&lt;p&gt;&lt;a rel=&#34;noreferrer noopener&#34; aria-label=&#34;上一篇 (opens in a new tab)&#34; href=&#34;https://www.jkg.tw/p2589&#34; target=&#34;_blank&#34;&gt;上一篇&lt;/a&gt;介紹的腳本是會去抓 Telegram 官方的 MTProxy 原始碼然後快速完成設定與部屬的&lt;/p&gt;
&lt;p&gt;其實還有一個功能更強的 Go 語言版本，作者是一個俄羅斯人改寫的&lt;/p&gt;
&lt;p&gt;在官方 MTProxy 基礎上增強效能、CPU 佔用資源更低、IPv6 支援以及更好加密性，而且開發活躍&lt;/p&gt;
&lt;p&gt;同樣是開放原始碼的，可以在這邊查閱： &lt;a rel=&#34;noreferrer noopener&#34; aria-label=&#34;https://github.com/9seconds/mtg (opens in a new tab)&#34; href=&#34;https://github.com/9seconds/mtg&#34; target=&#34;_blank&#34;&gt;&lt;a href=&#34;https://github.com/9seconds/mtg&#34;&gt;https://github.com/9seconds/mtg&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;admonition note&#34;&gt;
	&lt;div class=&#34;title&#34;&gt;2021/04/15 update&lt;/div&gt;
	&lt;div class=&#34;content&#34;&gt;&lt;p&gt;這篇文章的一鍵安裝腳本年久失修，有可能已經不能用，建議使用新的 Docker 版本&lt;/p&gt;
&lt;p&gt;文章傳送門 👉 &lt;a href=&#34;https://www.jkg.tw/p3526/&#34;&gt;使用 Docker 快速搭建 Telegram MTProxy-Go&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;p&gt;因為跟上一篇寫在一起，會不容易閱讀，造成混亂，所以這裡重新寫一篇&lt;/p&gt;
&lt;p&gt;安裝過程使用的腳本在這： &lt;a href=&#34;https://github.com/if1y/MTProxy-GO_OnekeyMake/blob/master/mtproxy_go.sh&#34;&gt;https://github.com/if1y/MTProxy-GO_OnekeyMake/blob/master/mtproxy_go.sh&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;是基於上一篇腳本基礎進行修改的&lt;/p&gt;
&lt;p&gt;GCP 申請以及安裝虛擬機方法，請直接參考&lt;a rel=&#34;noreferrer noopener&#34; aria-label=&#34;上一篇 (opens in a new tab)&#34; href=&#34;https://www.jkg.tw/p2589&#34; target=&#34;_blank&#34;&gt;上一篇&lt;/a&gt;介紹，此篇只介紹安裝設定 MTProxy 部分&lt;/p&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;h2 id=&#34;快速安裝設定-mtproxy-go&#34;&gt;&lt;span style=&#34;color:#0693e3&#34; class=&#34;color&#34;&gt;快速安裝設定 MTProxy Go&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;同樣在 GCP 後台，直接 SSH 進入到虛擬機終端機&lt;/p&gt;
&lt;p&gt;直接輸入以下指令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 先切換身份到 root&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo su
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 安裝 wget&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ apt install wget -y
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 下載執行 MTProxy 一鍵安裝腳本&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ wget -N --no-check-certificate https://raw.githubusercontent.com/if1y/MTProxy-GO_OnekeyMake/master/mtproxy_go.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ chmod +x mtproxy_go.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ./mtproxy_go.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;輸入完以上指令，就會馬上跳出安裝界面：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
