aboutsummaryrefslogtreecommitdiffstats
path: root/docs/features/tcpproxy.rst
blob: 1d6fbd12732c39a1286f6b98c92055e0135e7e09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
.. _tcpproxy:

TCP Proxy
=========

WebSockets or other non-HTTP protocols are not supported by mitmproxy yet. However, you can exempt
hostnames from processing, so that mitmproxy acts as a generic TCP forwarder.
This feature is closely related to the :ref:`passthrough` functionality,
but differs in two important aspects:

- The raw TCP messages are printed to the event log.
- SSL connections will be intercepted.

Please note that message interception or modification are not possible yet.
If you are not interested in the raw TCP messages, you should use the ignore domains feature.

How it works
------------

================== ======================
command-line       ``--tcp HOST``
mitmproxy shortcut :kbd:`o` then :kbd:`T`
================== ======================

For a detailed description how the hostname pattern works, please look at the :ref:`passthrough`
feature.

.. seealso::

    - :ref:`passthrough`
    - :ref:`responsestreaming`
t">size_t size); void *qemu_mallocz(size_t size); void qemu_free(void *ptr); char *qemu_strdup(const char *str); void *get_mmap_addr(unsigned long size); /* specific kludges for OS compatibility (should be moved elsewhere) */ #if defined(__i386__) && !defined(CONFIG_SOFTMMU) && !defined(CONFIG_USER_ONLY) /* disabled pthread version of longjmp which prevent us from using an alternative signal stack */ extern void __longjmp(jmp_buf env, int val); #define longjmp __longjmp #include <signal.h> /* NOTE: it works only because the glibc sigset_t is >= kernel sigset_t */ struct qemu_sigaction { union { void (*_sa_handler)(int); void (*_sa_sigaction)(int, struct siginfo *, void *); } _u; unsigned long sa_flags; void (*sa_restorer)(void); sigset_t sa_mask; /* mask last for extensibility */ }; int qemu_sigaction(int signum, const struct qemu_sigaction *act, struct qemu_sigaction *oldact); #undef sigaction #undef sa_handler #undef sa_sigaction #define sigaction qemu_sigaction #define sa_handler _u._sa_handler #define sa_sigaction _u._sa_sigaction #endif #endif