

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Proksi lokal
<a name="local-proxy"></a>

Proxy lokal mentransmisikan data yang dikirim oleh aplikasi yang berjalan pada perangkat sumber dengan menggunakan tunneling aman melalui koneksi aman. WebSocket Anda dapat mengunduh sumber proxy lokal dari [GitHub](https://github.com/aws-samples/aws-iot-securetunneling-localproxy). 

Proxy lokal dapat berjalan dalam dua mode: `source` atau`destination`. Dalam mode sumber, proxy lokal berjalan pada perangkat atau jaringan yang sama dengan aplikasi klien yang memulai koneksi TCP. Dalam mode tujuan, proxy lokal berjalan pada perangkat jarak jauh, bersama dengan aplikasi tujuan. Sebuah terowongan tunggal dapat mendukung hingga tiga aliran data pada satu waktu dengan menggunakan multiplexing terowongan. Untuk setiap aliran data, tunneling aman menggunakan beberapa koneksi TCP, yang mengurangi potensi waktu istirahat. Untuk informasi selengkapnya, lihat [Aliran data multipleks dan menggunakan koneksi TCP simultan di terowongan aman](multiplexing.md).

# Cara menggunakan proxy lokal
<a name="how-use-local-proxy"></a>

Anda dapat menjalankan proxy lokal pada perangkat sumber dan tujuan untuk mengirimkan data ke titik akhir tunneling yang aman. Jika perangkat Anda berada dalam jaringan yang menggunakan proxy web, proxy web dapat mencegat koneksi sebelum meneruskannya ke internet. Dalam hal ini, Anda harus mengonfigurasi proxy lokal Anda untuk menggunakan proxy web. Untuk informasi selengkapnya, lihat [Konfigurasikan proxy lokal untuk perangkat yang menggunakan proxy web](configure-local-proxy-web-proxy.md). 

## Alur kerja proxy lokal
<a name="local-proxy-workflow"></a>

Langkah-langkah berikut menunjukkan bagaimana proxy lokal dijalankan pada perangkat sumber dan tujuan.

1. 

**Connect proxy lokal untuk mengamankan tunneling**  
Pertama, proxy lokal harus membuat koneksi untuk mengamankan tunneling. Saat Anda memulai proxy lokal, gunakan argumen berikut:
   + `-r`Argumen untuk menentukan Wilayah AWS di mana terowongan dibuka.
   + `-t`Argumen untuk meneruskan token akses klien sumber atau tujuan dikembalikan dari`OpenTunnel`.
**catatan**  
Dua proxy lokal yang menggunakan nilai token akses klien yang sama tidak dapat dihubungkan pada saat yang bersamaan.

1. 

**Lakukan tindakan sumber atau tujuan**  
Setelah WebSocket koneksi dibuat, proxy lokal melakukan mode sumber atau tindakan mode tujuan, tergantung pada konfigurasinya.

   Secara default, proxy lokal mencoba untuk menyambung kembali untuk mengamankan tunneling jika terjadi kesalahan input/output (I/O) atau jika WebSocket koneksi ditutup secara tidak terduga. Hal ini menyebabkan koneksi TCP ditutup. Jika terjadi kesalahan soket TCP, proxy lokal mengirim pesan melalui terowongan untuk memberi tahu pihak lain untuk menutup koneksi TCP-nya. Secara default, proxy lokal selalu menggunakan komunikasi SSL.

1. 

**Hentikan proxy lokal**  
Setelah Anda menggunakan terowongan, aman untuk menghentikan proses proxy lokal. Kami menyarankan Anda menutup terowongan secara eksplisit dengan menelepon. `CloseTunnel` Klien terowongan aktif mungkin tidak ditutup tepat setelah menelepon`CloseTunnel`.

Untuk informasi lebih lanjut tentang cara menggunakan Konsol Manajemen AWS untuk membuka terowongan dan memulai sesi SSH, lihat[Buka terowongan dan mulai sesi SSH ke perangkat jarak jauh](secure-tunneling-tutorial-open-tunnel.md).

## Praktik terbaik proxy lokal
<a name="local-proxy-security"></a>

Saat menjalankan proxy lokal, ikuti praktik terbaik berikut:
+ Hindari penggunaan argumen proxy `-t` lokal untuk meneruskan token akses. Kami menyarankan Anda menggunakan variabel `AWSIOT_TUNNEL_ACCESS_TOKEN` lingkungan untuk mengatur token akses untuk proxy lokal.
+ Jalankan proxy lokal yang dapat dieksekusi dengan hak istimewa paling sedikit di sistem operasi atau lingkungan.
  + Hindari menjalankan proxy lokal sebagai administrator di Windows.
  + Hindari menjalankan proxy lokal sebagai root di Linux dan macOS.
+ Pertimbangkan untuk menjalankan proxy lokal pada host, kontainer, kotak pasir, penjara chroot, atau lingkungan virtual yang terpisah.
+ Buat proxy lokal dengan flag keamanan yang relevan, tergantung pada toolchain Anda.
+ Pada perangkat dengan beberapa antarmuka jaringan, gunakan `-b` argumen untuk mengikat soket TCP ke antarmuka jaringan yang digunakan untuk berkomunikasi dengan aplikasi tujuan. 

## Contoh perintah dan output
<a name="example-cmd-output-localproxy"></a>

Berikut ini menunjukkan contoh perintah yang Anda jalankan dan output yang sesuai. Contoh menunjukkan bagaimana proxy lokal dapat dikonfigurasi dalam keduanya `source` dan `destination` mode. Proxy lokal meningkatkan protokol HTTPS WebSockets untuk membuat koneksi berumur panjang dan kemudian mulai mentransmisikan data melalui koneksi ke titik akhir perangkat tunneling aman.

**Sebelum Anda menjalankan perintah ini:**  
Anda harus telah membuka terowongan dan memperoleh token akses klien untuk sumber dan tujuan. Anda juga harus membangun proxy lokal seperti yang dijelaskan sebelumnya. Untuk membangun proxy lokal, buka [kode sumber proxy lokal](https://github.com/aws-samples/aws-iot-securetunneling-localproxy) di GitHub repositori dan ikuti instruksi untuk membangun dan menginstal proxy lokal.

**catatan**  
Perintah berikut yang digunakan dalam contoh menggunakan `verbosity` bendera untuk mengilustrasikan ikhtisar berbagai langkah yang dijelaskan sebelumnya setelah Anda menjalankan proxy lokal. Kami menyarankan Anda menggunakan bendera ini hanya untuk tujuan pengujian.

**Menjalankan proxy lokal dalam mode sumber**  
Perintah berikut menampilkan cara menjalankan proxy lokal dalam mode sumber.

------
#### [ Linux/macOS ]

Di Linux atau macOS, jalankan perintah berikut di terminal untuk mengonfigurasi dan memulai proxy lokal di sumber Anda.

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
./localproxy -s 5555 -v 5 -r us-west-2
```

Di mana:
+ `-s`adalah port mendengarkan sumber, yang memulai proxy lokal dalam mode sumber.
+ `-v`adalah verbositas output, yang bisa menjadi nilai antara nol dan enam.
+ `-r`adalah wilayah titik akhir tempat terowongan dibuka.

Untuk informasi selengkapnya tentang parameter, lihat [Opsi yang disetel menggunakan argumen baris perintah](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments).

------
#### [ Windows ]

Di Windows, Anda mengonfigurasi proxy lokal yang mirip dengan yang Anda lakukan untuk Linux atau macOS, tetapi bagaimana Anda mendefinisikan variabel lingkungan berbeda dari platform lain. Jalankan perintah berikut di `cmd` jendela untuk mengkonfigurasi dan memulai proxy lokal di sumber Anda.

```
set AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
.\localproxy -s 5555 -v 5 -r us-west-2
```

Di mana:
+ `-s`adalah port mendengarkan sumber, yang memulai proxy lokal dalam mode sumber.
+ `-v`adalah verbositas output, yang bisa menjadi nilai antara nol dan enam.
+ `-r`adalah wilayah titik akhir tempat terowongan dibuka.

Untuk informasi selengkapnya tentang parameter, lihat [Opsi yang disetel menggunakan argumen baris perintah](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments).

------

**catatan**  
Saat menggunakan versi terbaru proxy lokal dalam mode sumber, Anda harus menyertakan AWS CLI parameter `--destination-client-type V1` pada perangkat sumber untuk kompatibilitas mundur. Ini berlaku saat menghubungkan ke salah satu mode tujuan berikut:  
AWS IoT Klien Perangkat
AWS IoT Komponen Tunneling Aman atau Komponen Tunneling AWS IoT Greengrass Version 2 Aman
Kode demo Tunneling AWS IoT Aman apa pun yang ditulis sebelum 2022
Versi 1.X dari proxy lokal
Parameter ini memastikan komunikasi yang tepat antara proxy sumber yang diperbarui dan klien tujuan yang lebih lama. Untuk informasi selengkapnya tentang versi proxy lokal, lihat [Terowongan AWS IoT Aman](https://github.com/aws-samples/aws-iot-securetunneling-localproxy/blob/main/README.md#as-of-312-may-2024-update---destination-client-type-v1-will-be-a-required-parameter-when-connecting-with-the-following) aktif. *GitHub*

Berikut ini adalah contoh output menjalankan proxy lokal dalam `source` mode.

```
...
...

Starting proxy in source mode
Attempting to establish web socket connection with endpoint wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Resolved proxy  server IP: 10.10.0.11
Connected successfully with proxy server
Performing SSL handshake with proxy server	
Successfully completed SSL handshake with proxy server
HTTP/1.1 101 Switching Protocols

...

Connection: upgrade
channel-id: 01234567890abc23-00001234-0005678a-b1234c5de677a001-2bc3d456
upgrade: websocket

...

Web socket session ID: 01234567890abc23-00001234-0005678a-b1234c5de677a001-2bc3d456
Web socket subprotocol selected: aws.iot.securetunneling-2.0
Successfully established websocket connection with proxy server: wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Setting up web socket pings for every 5000 milliseconds
Scheduled next read:

...

Starting web socket read loop continue reading...
Resolved bind IP: 127.0.0.1
Listening for new connection on port 5555
```

**Menjalankan proxy lokal dalam mode tujuan**  
Perintah berikut menampilkan cara menjalankan proxy lokal dalam mode tujuan.

------
#### [ Linux/macOS ]

Di Linux atau macOS, jalankan perintah berikut di terminal untuk mengonfigurasi dan memulai proxy lokal di tujuan Anda.

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
./localproxy -d 22 -v 5 -r us-west-2
```

Di mana:
+ `-d`adalah aplikasi tujuan yang memulai proxy lokal dalam mode tujuan.
+ `-v`adalah verbositas output, yang bisa menjadi nilai antara nol dan enam.
+ `-r`adalah wilayah titik akhir tempat terowongan dibuka.

Untuk informasi selengkapnya tentang parameter, lihat [Opsi yang disetel menggunakan argumen baris perintah](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments).

------
#### [ Windows ]

Di Windows, Anda mengonfigurasi proxy lokal yang mirip dengan yang Anda lakukan untuk Linux atau macOS, tetapi bagaimana Anda mendefinisikan variabel lingkungan berbeda dari platform lain. Jalankan perintah berikut di `cmd` jendela untuk mengkonfigurasi dan memulai proxy lokal di tujuan Anda.

```
set AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
.\localproxy -d 22 -v 5 -r us-west-2
```

Di mana:
+ `-d`adalah aplikasi tujuan yang memulai proxy lokal dalam mode tujuan.
+ `-v`adalah verbositas output, yang bisa menjadi nilai antara nol dan enam.
+ `-r`adalah wilayah titik akhir tempat terowongan dibuka.

Untuk informasi selengkapnya tentang parameter, lihat [Opsi yang disetel menggunakan argumen baris perintah](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via-command-line-arguments).

------

**catatan**  
Saat menggunakan versi terbaru proxy lokal dalam mode tujuan, Anda harus menyertakan AWS CLI parameter `--destination-client-type V1` pada perangkat tujuan untuk kompatibilitas mundur. Ini berlaku saat menghubungkan ke salah satu mode sumber ini:  
Tunneling Aman berbasis browser dari Konsol. AWS 
Versi 1.X dari proxy lokal
Parameter ini memastikan komunikasi yang tepat antara proxy tujuan yang diperbarui dan klien sumber lama. Untuk informasi selengkapnya tentang versi proxy lokal, lihat [Terowongan AWS IoT Aman](https://github.com/aws-samples/aws-iot-securetunneling-localproxy/blob/main/README.md#as-of-312-may-2024-update---destination-client-type-v1-will-be-a-required-parameter-when-connecting-with-the-following) aktif. *GitHub*

Berikut ini adalah contoh output menjalankan proxy lokal dalam `destination` mode.

```
...
...

Starting proxy in destination mode
Attempting to establish web socket connection with endpoint wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Resolved proxy  server IP: 10.10.0.11
Connected successfully with proxy server
Performing SSL handshake with proxy server	
Successfully completed SSL handshake with proxy server
HTTP/1.1 101 Switching Protocols

...

Connection: upgrade
channel-id: 01234567890abc23-00001234-0005678a-b1234c5de677a001-2bc3d456
upgrade: websocket

...

Web socket session ID: 01234567890abc23-00001234-0005678a-b1234c5de677a001-2bc3d456
Web socket subprotocol selected: aws.iot.securetunneling-2.0
Successfully established websocket connection with proxy server: wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Setting up web socket pings for every 5000 milliseconds
Scheduled next read:

...

Starting web socket read loop continue reading...
```

# Konfigurasikan proxy lokal untuk perangkat yang menggunakan proxy web
<a name="configure-local-proxy-web-proxy"></a>

Anda dapat menggunakan proxy lokal pada AWS IoT perangkat untuk berkomunikasi dengan AWS IoT APIs tunneling aman. Proxy lokal mentransmisikan data yang dikirim oleh aplikasi perangkat menggunakan tunneling aman melalui koneksi aman. WebSocket Proxy lokal dapat bekerja dalam `destination` mode `source` atau. Dalam `source` mode, ini berjalan pada perangkat atau jaringan yang sama yang memulai koneksi TCP. Dalam `destination` mode, proxy lokal berjalan pada perangkat jarak jauh, bersama dengan aplikasi tujuan. Untuk informasi selengkapnya, lihat [Proksi lokal](local-proxy.md).

Proxy lokal perlu terhubung langsung ke internet untuk menggunakan tunneling yang AWS IoT aman. Untuk koneksi TCP berumur panjang dengan tunneling aman, proxy lokal memutakhirkan permintaan HTTPS untuk membuat WebSockets koneksi ke salah satu titik akhir koneksi perangkat tunneling yang [aman](https://docs.aws.amazon.com/general/latest/gr/iot_device_management.html).

Jika perangkat Anda berada dalam jaringan yang menggunakan proxy web, proxy web dapat mencegat koneksi sebelum meneruskannya ke internet. [Untuk membuat koneksi berumur panjang ke titik akhir koneksi perangkat tunneling aman, konfigurasikan proxy lokal Anda untuk menggunakan proxy web seperti yang dijelaskan dalam spesifikasi websocket.](https://tools.ietf.org/html/rfc6455#section-4.1)

**catatan**  
[AWS IoT Klien Perangkat](iot-sdks.md#iot-sdk-device-client)Tidak mendukung perangkat yang menggunakan proxy web. Untuk bekerja dengan proxy web, Anda harus menggunakan proxy lokal dan mengonfigurasinya agar berfungsi dengan proxy web seperti yang dijelaskan di bawah ini.

Langkah-langkah berikut menunjukkan bagaimana proxy lokal bekerja dengan proxy web.

1. Proxy lokal mengirimkan `CONNECT` permintaan HTTP ke proxy web yang berisi alamat jarak jauh dari layanan tunneling aman, bersama dengan informasi otentikasi proxy web.

1. Proxy web kemudian akan membuat koneksi berumur panjang ke titik akhir terowongan aman jarak jauh.

1. Koneksi TCP dibuat dan proxy lokal sekarang akan bekerja dalam mode sumber dan tujuan untuk transmisi data.

**Topics**
+ [Membangun proxy lokal](#build-local-proxy)
+ [Konfigurasikan proxy web Anda](#configure-web-proxy)
+ [Konfigurasikan dan mulai proxy lokal](#configure-start-local-proxy)

## Membangun proxy lokal
<a name="build-local-proxy"></a>

Buka [kode sumber proxy lokal](https://github.com/aws-samples/aws-iot-securetunneling-localproxy) di GitHub repositori dan ikuti instruksi untuk membangun dan menginstal proxy lokal.

## Konfigurasikan proxy web Anda
<a name="configure-web-proxy"></a>

[Proxy lokal bergantung pada mekanisme tunneling HTTP yang dijelaskan oleh spesifikasi HTTP/1.1.](https://tools.ietf.org/html/rfc7231#section-4.3.6) Untuk mematuhi spesifikasi, proxy web Anda harus mengizinkan perangkat untuk menggunakan `CONNECT` metode ini.

Cara Anda mengonfigurasi proxy web Anda tergantung pada proxy web yang Anda gunakan dan versi proxy web. Untuk memastikan Anda mengonfigurasi proxy web dengan benar, periksa dokumentasi proxy web Anda.

Untuk mengonfigurasi proxy web Anda, pertama-tama identifikasi URL proxy web Anda dan konfirmasikan apakah proxy web Anda mendukung tunneling HTTP. URL proxy web akan digunakan nanti saat Anda mengonfigurasi dan memulai proxy lokal.

1. 

**Identifikasi URL proxy web Anda**  
URL proxy web Anda akan dalam format berikut.

   ```
   protocol://web_proxy_host_domain:web_proxy_port
   ```

   AWS IoT tunneling aman hanya mendukung otentikasi dasar untuk proxy web. Untuk menggunakan otentikasi dasar, Anda harus menentukan **username** dan **password** sebagai bagian dari URL proxy web. URL proxy web akan dalam format berikut.

   ```
   protocol://username:password@web_proxy_host_domain:web_proxy_port
   ```
   + *protocol*bisa `http` atau`https`. Kami menyarankan Anda menggunakan`https`.
   + *web\$1proxy\$1host\$1domain*adalah alamat IP proxy web Anda atau nama DNS yang menyelesaikan ke alamat IP proxy web Anda.
   + *web\$1proxy\$1port*adalah port tempat proxy web mendengarkan.
   + Proxy web menggunakan ini **username** dan **password** untuk mengautentikasi permintaan.

1. 

**Uji URL proxy web Anda**  
Untuk mengonfirmasi apakah proxy web Anda mendukung tunneling TCP, gunakan `curl` perintah dan pastikan Anda mendapatkan respons `2xx` atau respons. `3xx`

   Misalnya, jika URL proxy web Anda`https://server.com:1235`, gunakan `proxy-insecure` tanda dengan `curl` perintah karena proxy web mungkin bergantung pada sertifikat yang ditandatangani sendiri.

   ```
   export HTTPS_PROXY=https://server.com:1235
   curl -I https://aws.amazon.com --proxy-insecure
   ```

   Jika URL proxy web Anda memiliki `http` port (misalnya,`http://server.com:1234`), Anda tidak perlu menggunakan `proxy-insecure` bendera.

   ```
   export HTTPS_PROXY=http://server.com:1234
   curl -I https://aws.amazon.com
   ```

## Konfigurasikan dan mulai proxy lokal
<a name="configure-start-local-proxy"></a>

Untuk mengonfigurasi proxy lokal untuk menggunakan proxy web, Anda harus mengonfigurasi variabel `HTTPS_PROXY` lingkungan dengan nama domain DNS atau alamat IP dan nomor port yang digunakan proxy web Anda.

Setelah mengonfigurasi proxy lokal, Anda dapat menggunakan proxy lokal seperti yang dijelaskan dalam dokumen [README](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#readme) ini.

**catatan**  
Deklarasi variabel lingkungan Anda peka huruf besar/kecil. Kami menyarankan Anda mendefinisikan setiap variabel sekali menggunakan semua huruf besar atau semua huruf kecil. Contoh berikut menunjukkan variabel lingkungan dideklarasikan dalam huruf besar. Jika variabel yang sama ditentukan menggunakan huruf besar dan kecil, variabel yang ditentukan menggunakan huruf kecil diutamakan. 

Perintah berikut menunjukkan cara mengonfigurasi proxy lokal yang berjalan di tujuan Anda untuk menggunakan proxy web dan memulai proxy lokal.
+ `AWSIOT_TUNNEL_ACCESS_TOKEN`: Variabel ini menyimpan token akses klien (CAT) untuk tujuan.
+ `HTTPS_PROXY`: Variabel ini menyimpan URL proxy web atau alamat IP untuk mengkonfigurasi proxy lokal.

Perintah yang ditampilkan dalam contoh berikut bergantung pada sistem operasi yang Anda gunakan dan apakah proxy web mendengarkan pada HTTP atau port HTTPS.

### Proxy web mendengarkan pada port HTTP
<a name="configure-start-local-proxy-http"></a>

Jika proxy web Anda mendengarkan pada port HTTP, Anda dapat memberikan URL proxy web atau alamat IP untuk `HTTPS_PROXY` variabel tersebut.

------
#### [ Linux/macOS ]

Di Linux atau macOS, jalankan perintah berikut di terminal untuk mengonfigurasi dan memulai proxy lokal di tujuan Anda untuk menggunakan proxy web yang mendengarkan port HTTP.

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
export HTTPS_PROXY=http:proxy.example.com:1234
./localproxy -r us-east-1 -d 22
```

Jika Anda harus mengautentikasi dengan proxy, Anda harus menentukan **username** dan **password** sebagai bagian dari `HTTPS_PROXY` variabel.

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
export HTTPS_PROXY=http://username:password@proxy.example.com:1234
./localproxy -r us-east-1 -d 22
```

------
#### [ Windows ]

Di Windows, Anda mengonfigurasi proxy lokal yang mirip dengan yang Anda lakukan untuk Linux atau macOS, tetapi bagaimana Anda mendefinisikan variabel lingkungan berbeda dari platform lain. Jalankan perintah berikut di `cmd` jendela untuk mengkonfigurasi dan memulai proxy lokal di tujuan Anda untuk menggunakan proxy web mendengarkan port HTTP.

```
set AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
set HTTPS_PROXY=http://proxy.example.com:1234
.\localproxy -r us-east-1 -d 22
```

Jika Anda harus mengautentikasi dengan proxy, Anda harus menentukan **username** dan **password** sebagai bagian dari `HTTPS_PROXY` variabel.

```
set AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
set HTTPS_PROXY=http://username:password@10.15.20.25:1234
.\localproxy -r us-east-1 -d 22
```

------

### Proxy web mendengarkan pada port HTTPS
<a name="configure-start-local-proxy-https"></a>

Jalankan perintah berikut jika proxy web Anda mendengarkan pada port HTTPS. 

**catatan**  
Jika Anda menggunakan sertifikat yang ditandatangani sendiri untuk proxy web atau jika Anda menjalankan proxy lokal pada OS yang tidak memiliki dukungan OpenSSL asli dan konfigurasi default, Anda harus menyiapkan sertifikat proxy web Anda seperti yang dijelaskan di [bagian Penyiapan sertifikat di repositori](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#certificate-setup). GitHub 

Perintah berikut akan terlihat mirip dengan cara Anda mengonfigurasi proxy web Anda untuk proxy HTTP, dengan pengecualian bahwa Anda juga akan menentukan jalur ke file sertifikat yang Anda instal seperti yang dijelaskan sebelumnya.

------
#### [ Linux/macOS ]

Di Linux atau macOS, jalankan perintah berikut di terminal untuk mengonfigurasi proxy lokal yang berjalan di tujuan Anda untuk menggunakan proxy web yang mendengarkan port HTTPS.

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
export HTTPS_PROXY=http:proxy.example.com:1234
./localproxy -r us-east-1 -d 22 -c /path/to/certs
```

Jika Anda harus mengautentikasi dengan proxy, Anda harus menentukan **username** dan **password** sebagai bagian dari `HTTPS_PROXY` variabel.

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
export HTTPS_PROXY=http://username:password@proxy.example.com:1234
./localproxy -r us-east-1 -d 22 -c /path/to/certs
```

------
#### [ Windows ]

Di Windows, jalankan perintah berikut di `cmd` jendela untuk mengkonfigurasi dan memulai proxy lokal yang berjalan di tujuan Anda untuk menggunakan proxy web mendengarkan port HTTP.

```
set AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
set HTTPS_PROXY=http://proxy.example.com:1234
.\localproxy -r us-east-1 -d 22 -c \path\to\certs
```

Jika Anda harus mengautentikasi dengan proxy, Anda harus menentukan **username** dan **password** sebagai bagian dari `HTTPS_PROXY` variabel.

```
set AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
set HTTPS_PROXY=http://username:password@10.15.20.25:1234
.\localproxy -r us-east-1 -d 22 -c \path\to\certs
```

------

### Contoh perintah dan output
<a name="example-cmd-output-localproxy-webproxy"></a>

Berikut ini menunjukkan contoh perintah yang Anda jalankan pada OS Linux dan output yang sesuai. Contoh menunjukkan proxy web yang mendengarkan pada port HTTP dan bagaimana proxy lokal dapat dikonfigurasi untuk menggunakan proxy web di keduanya `source` dan `destination` mode. Sebelum Anda dapat menjalankan perintah ini, Anda harus sudah membuka terowongan dan memperoleh token akses klien untuk sumber dan tujuan. Anda juga harus membangun proxy lokal dan mengonfigurasi proxy web Anda seperti yang dijelaskan sebelumnya.

Berikut adalah ikhtisar langkah-langkah setelah Anda memulai proxy lokal. Proksi lokal:
+ Mengidentifikasi URL proxy web sehingga dapat menggunakan URL untuk terhubung ke server proxy.
+ Membuat koneksi TCP dengan proxy web.
+ Mengirim `CONNECT` permintaan HTTP ke proxy web dan menunggu `HTTP/1.1 200` respons, yang menunjukkan bahwa koneksi telah dibuat.
+ Upgrade protokol HTTPS WebSockets untuk membuat koneksi berumur panjang.
+ Mulai mentransmisikan data melalui koneksi ke titik akhir perangkat tunneling yang aman. 

**catatan**  
Perintah berikut yang digunakan dalam contoh menggunakan `verbosity` bendera untuk mengilustrasikan ikhtisar berbagai langkah yang dijelaskan sebelumnya setelah Anda menjalankan proxy lokal. Kami menyarankan Anda menggunakan bendera ini hanya untuk tujuan pengujian.

**Menjalankan proxy lokal dalam mode sumber**  
Perintah berikut menunjukkan cara menjalankan proxy lokal dalam mode sumber.

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
export HTTPS_PROXY=http:username:password@10.15.10.25:1234
./localproxy -s 5555 -v 5 -r us-west-2
```

Berikut ini menunjukkan contoh output menjalankan proxy lokal dalam `source` mode.

```
...

Parsed basic auth credentials for the URL
Found Web proxy information in the environment variables, will use it to connect via the proxy.

...

Starting proxy in source mode
Attempting to establish web socket connection with endpoint wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Resolved Web proxy IP: 10.10.0.11
Connected successfully with Web Proxy
Successfully sent HTTP CONNECT to the Web proxy
Full response from the Web proxy:
HTTP/1.1 200 Connection established
TCP tunnel established successfully
Connected successfully with proxy server
Successfully completed SSL handshake with proxy server
Web socket session ID: 0a109afffee745f5-00001341-000b8138-cc6c878d80e8adb0-f186064b
Web socket subprotocol selected: aws.iot.securetunneling-2.0
Successfully established websocket connection with proxy server: wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Seting up web socket pings for every 5000 milliseconds
Scheduled next read:

...

Starting web socket read loop continue reading...
Resolved bind IP: 127.0.0.1
Listening for new connection on port 5555
```

**Menjalankan proxy lokal dalam mode tujuan**  
Perintah berikut menunjukkan cara menjalankan proxy lokal dalam mode tujuan.

```
export AWSIOT_TUNNEL_ACCESS_TOKEN=${access_token}
export HTTPS_PROXY=http:username:password@10.15.10.25:1234
./localproxy -d 22 -v 5 -r us-west-2
```

Berikut ini menunjukkan contoh output menjalankan proxy lokal dalam `destination` mode.

```
...

Parsed basic auth credentials for the URL
Found Web proxy information in the environment variables, will use it to connect via the proxy.

...

Starting proxy in destination mode
Attempting to establish web socket connection with endpoint wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Resolved Web proxy IP: 10.10.0.1
Connected successfully with Web Proxy
Successfully sent HTTP CONNECT to the Web proxy
Full response from the Web proxy:
HTTP/1.1 200 Connection established
TCP tunnel established successfully
Connected successfully with proxy server
Successfully completed SSL handshake with proxy server
Web socket session ID: 06717bfffed3fd05-00001355-000b8315-da3109a85da804dd-24c3d10d
Web socket subprotocol selected: aws.iot.securetunneling-2.0
Successfully established websocket connection with proxy server: wss://data.tunneling.iot.us-west-2.amazonaws.com:443
Seting up web socket pings for every 5000 milliseconds
Scheduled next read:

...

Starting web socket read loop continue reading...
```