<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Surfer - 标签 - 今日无新鲜事</title><link>https://finite.tain.one/zh-cn/tags/surfer/</link><description>Surfer - 标签 - 今日无新鲜事</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>selcarpa@gmail.com (selcarpa)</managingEditor><webMaster>selcarpa@gmail.com (selcarpa)</webMaster><lastBuildDate>Fri, 25 Aug 2023 09:49:07 +0800</lastBuildDate><atom:link href="https://finite.tain.one/zh-cn/tags/surfer/" rel="self" type="application/rss+xml"/><item><title>用Netty实现Trojan（二）</title><link>https://finite.tain.one/zh-cn/docs/surfer/surfer2/</link><pubDate>Fri, 25 Aug 2023 09:49:07 +0800</pubDate><author><name>selcarpa</name></author><guid>https://finite.tain.one/zh-cn/docs/surfer/surfer2/</guid><description>&lt;p>本节主要是介绍如何实现一个允许tcp通过的socks代理服务器，大部分携带网络功能的客户端，如curl、wget、浏览器等，在请求的时候，可以通过环境变量或者设置的形式，使这些客户端通过代理进行请求，以下是一个简单的例子：&lt;/p></description></item><item><title>用Netty实现Trojan（一）</title><link>https://finite.tain.one/zh-cn/docs/surfer/surfer1/</link><pubDate>Fri, 25 Aug 2023 09:48:31 +0800</pubDate><author><name>selcarpa</name></author><guid>https://finite.tain.one/zh-cn/docs/surfer/surfer1/</guid><description><![CDATA[<h2 id="完整代码" class="headerLink">
    <a href="#%e5%ae%8c%e6%95%b4%e4%bb%a3%e7%a0%81" class="header-mark"></a>完整代码</h2><p><a href="https://github.com/selcarpa/surfer/releases/tag/1.13-SNAPSHOT" target="_blank" rel="noopener noreferrer">selcarpa/surfer tag(1.13-SHAPSHOT)</a></p>
<h2 id="选用技术栈" class="headerLink">
    <a href="#%e9%80%89%e7%94%a8%e6%8a%80%e6%9c%af%e6%a0%88" class="header-mark"></a>选用技术栈</h2><ul>
<li>kotlin</li>
<li>Netty</li>
<li>Trojan</li>
</ul>
<h2 id="介绍" class="headerLink">
    <a href="#%e4%bb%8b%e7%bb%8d" class="header-mark"></a>介绍</h2><h3 id="kotlin" class="headerLink">
    <a href="#kotlin" class="header-mark"></a>Kotlin</h3><p>项目采用kotlin语言，它是一种基于JVM的静态类型编程语言，它可以编译成Java字节码，完全兼容Java的生态系统，可以与Java代码无缝互操作。它的语法与Java非常相似，但是它有更多的特性，比如：null安全、扩展函数、运算符重载、lambda表达式、属性代理等等。</p>
<h3 id="netty" class="headerLink">
    <a href="#netty" class="header-mark"></a>Netty</h3><p>Netty是一个异步事件驱动的网络应用程序框架，用于快速开发可维护的高性能协议服务器和客户端。Netty是一个NIO客户端-服务器框架，使用Netty可以快速开发网络应用，例如服务器和客户端协议。Netty提供了一种新的方式来使开发网络应用程序，这种新的方式使得它很容易使用和有很强的扩展性。</p>
<h3 id="什么是trojan" class="headerLink">
    <a href="#%e4%bb%80%e4%b9%88%e6%98%aftrojan" class="header-mark"></a>什么是Trojan</h3><p><a href="https://trojan-gfw.github.io/trojan/protocol.html" target="_blank" rel="noopener noreferrer">Trojan</a>协议是一个类似于socks的代理协议，它的特点是可以在tls的连接中传输，这样就可以在网络中隐藏自己的流量，使得流量看起来像是一个正常的https连接，从而规避流量审查，在认证方式上，trojan采用56字节作为认证字段，用以验证客户端和服务端的身份。在交互报文中，Trojan协议的<code>Trojan request</code>结构与socks5的<code>socks5 CMD</code>几乎一样。</p>]]></description></item></channel></rss>